📜  数制分类(1)

📅  最后修改于: 2023-12-03 15:10:16.940000             🧑  作者: Mango

数制分类

数制是数学中用来表示数值的一种方法,人类使用不同的数制实现了数字的表示和计算,主要包括二进制、八进制、十进制和十六进制。

二进制

二进制是一种基于2的数制,它只使用了0和1两个数字。在计算机科学和电子工程中,因为机器语言和硬件设计的本质,数字电路和数字电子设备使用二进制数值。例如,在计算机中,所有数据和程序都转换为二进制位模式,以便于计算机识别和存储。

八进制

八进制是一种基于8的数制,使用数字0到7。在过去的计算机和计算器中,使用八进制是很常见的,但现在已经不再经常使用了。

十进制

十进制是一种基于10的数制,使用数字0到9。十进制是我们日常生活中所使用的数字表示方法,包括货币、数量、时钟、度量单位和其他标准的数字表示方法。

十六进制

十六进制是一种基于16的数制,使用数字0到9和字母A到F。在计算机中,十六进制广泛应用于表示颜色、内存地址和其他二进制值,因为十六进制数比较容易理解,并且十六进制数和二进制数之间具有固定的转换关系。

代码片段
# 十进制转二进制
def decimal_to_binary(decimal_num):
    if decimal_num == 0:
        return "0b0"
    binary = ""
    while decimal_num > 0:
        remainder = decimal_num % 2
        binary = str(remainder) + binary
        decimal_num //= 2
    return "0b" + binary

# 十进制转十六进制
def decimal_to_hex(decimal_num):
    hex_map = {10: "A", 11: "B", 12: "C", 13: "D", 14: "E", 15: "F"}
    if decimal_num == 0:
        return "0x0"
    hex_str = ""
    while decimal_num > 0:
        remainder = decimal_num % 16
        hex_digit = hex_map.get(remainder) if remainder > 9 else str(remainder)
        hex_str = hex_digit + hex_str
        decimal_num //= 16
    return "0x" + hex_str

# 二进制转十进制
def binary_to_decimal(binary_num):
    decimal_num = 0
    for i in range(len(binary_num)):
        digit = binary_num[i]
        if digit == "1":
            decimal_num += pow(2, len(binary_num) - i - 1)
    return decimal_num

# 十六进制转十进制
def hex_to_decimal(hex_num):
    decimal_map = {"0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, 
                   "7": 7, "8": 8, "9": 9, "A": 10, "B": 11, "C": 12, 
                   "D": 13, "E": 14, "F": 15}
    decimal_num = 0
    for i in range(len(hex_num)):
        digit = hex_num[i]
        decimal_digit = decimal_map[digit]
        decimal_num += decimal_digit * pow(16, len(hex_num) - i - 1)
    return decimal_num

以上是一些常见的数制转换算法的Python代码片段。在实际编程中应该在选用合适的数据类型时充分考虑不同数制之间的转换。