📅  最后修改于: 2023-12-03 15:39:56.658000             🧑  作者: Mango
数制是一种用于表示数字的记数系统,不同的数制基数不同,进位方式也不同,常见于计算机底层的存储和计算。
常见的数制有:
二进制是计算机底层常用的一种数制,因为计算机内部所有的运算、逻辑操作都是基于二进制的。二进制中每一位称为一个比特(bit),可以用0或1来表示。例如,二进制数1101表示1+4+8=13。
# 将十进制数转二进制
def decimal_to_binary(n):
if n == 0:
return '0'
else:
binary = ''
while n > 0:
binary = str(n % 2) + binary
n = n // 2
return binary
print(decimal_to_binary(13)) # 1101
八进制是一种较少使用的数制,但在某些领域仍然有用途。八进制中每一位的基数为8,用0-7表示,例如,八进制数653表示3+5×8+6×64=427。
# 将十进制数转八进制
def decimal_to_octal(n):
if n == 0:
return '0'
else:
octal = ''
while n > 0:
octal = str(n % 8) + octal
n = n // 8
return octal
print(decimal_to_octal(427)) # 653
十进制是我们最为熟悉的一种数制,它是基于10的记数系统,包含了0-9这10个数字。
# 将二进制数转十进制
def binary_to_decimal(binary):
decimal = 0
for i in range(len(binary)):
decimal += int(binary[i]) * 2 ** (len(binary) - i - 1)
return decimal
print(binary_to_decimal('1101')) # 13
十六进制常用于计算机领域,它是基于16的记数系统,包含了0-9和A-F这16个数字。
# 将十进制数转十六进制
def decimal_to_hexadecimal(n):
if n == 0:
return '0'
else:
hexadecimal = ''
while n > 0:
remainder = n % 16
if remainder < 10:
hexadecimal = str(remainder) + hexadecimal
else:
hexadecimal = chr(remainder - 10 + ord('A')) + hexadecimal
n = n // 16
return hexadecimal
print(decimal_to_hexadecimal(427)) # 1AB
以上是数制分类的详细介绍,我们可以根据实际需求选择不同的数制来进行计算和存储。