内置函数实现
dec = 369 #十进制数
b = bin(dec) #十进制转二进制
o = oct(dec) #十进制转八进制
x = hex(dec) #十进制转十六进制
print(b)
print(o)
print(x)
#结果: 0b表示二进制、0o表示八进制、0x表示十六进制
#0b101110001
#0o561
#0x171
非内置函数实现
十进制转二进制
def Dec_to_Bin(num):
result = ""
while num != 0:
ret = num % 2
num //= 2
result = str(ret) + result
return result
print(Dec_to_Bin(1024))
#结果:
#10000000000
十进制转八进制
def Dec_to_Oct(num):
result = ""
while num != 0:
ret = num % 8
num //= 8
result = str(ret) + result
return result
print(Dec_to_Oct(1024))
#结果:
#2000
所以十进制转二到九进制都可以用上面的自定义函数,只需改一下你要转的进制即可
十进制转十六进制
def Dec_to_Hex(num):
result = ""
while num != 0:
ret = num % 16
num //= 16
if ret >= 10:
ret = chr(ord('a') + ret - 10)
result = str(ret) + result
return result
print(Dec_to_Hex(1024))
#结果:
#400
注意:
- 十六进制有15个数字,除了0-9外,还有 a-f ,分别代表10-15,所以转十六进制时要注意
>=10
的数要换成相应的字母。 - ord:把字母转换成对应ASCII码的函数,返回值是对应的
十进制整数
。 - chr:把ASCII码转换成对应的符号的函数,返回值是当前整数对应的
ASCII 字符
。