在Python中,进制的转换通过Python的内置函数即可实现。下文所说的其他进制指的是二进制、十六进制和八 进制。
一、 相关函数:
str():字符串转换函数
bin():将一个整数转换成2进制字符串
hex():将一个整数转换成16进制字符串
oct():将一个整数转换成8进制字符串
二、十进制转换为其它进制
代码如下:
# 十进制转换到其他进制
int = 10
hex = hex(int)
bin = bin(int)
oct = oct(int)
print('十进制数是:',int)
print(type(int),end='\n\n')
# 十进制数是: 10
# <class 'int'>
print('十六进制数是:',hex)
print(type(hex),end='\n\n')
# 十六进制数是: 0xa
# <class 'str'>
print('二进制数是:',bin)
print(type(bin),end='\n\n')
# 二进制数是: 0b1010
# <class 'str'>
print('八进制数是:',oct)
print(type(oct),end='\n\n')
# 八进制数是: 0o12
# <class 'str'>
注:运用Python内置函数从十进制转换为其他进制,其输出的类型均为str类型,且转换后的值中,hex(),bin(),oct()会自动加上0x,0b,0o前缀。
三、其他进制转换为十进制
其他进制转换为十进制,是上述过程的相反实现。
# 其他进制转换为十进制
a = 1010 #二进制数1010
str = str(a)
print('十进制是:',int(str,2))
print(type(int(str,2)))
# 十进制是: 10
# <class 'int'>
b = 25 #八进制数25
str = str(b)
print('十进制数是:',int(str,8))
print(type(int(str,8)))
# 十进制数是: 21
# <class 'int'>
c = 25 #十六进制数25
str = str(c)
print('十进制数是:',int(str,16))
print(type(int(str,16)))
# 十进制数是: 37
# <class 'int'>
总结:其他进制转换为十进制数,需要借助str()函数,即首先利用str()函数将数字转化为字符串类型,然后再进行转换;转换时,待转数字不应该带有0b,0x,0o前缀,否则转换后将发生错误。
四、其他进制间的相互转换
二进制、八进制、十六进制间的转换可以利用十进制作为桥梁,转换为十进制后再将其转换为其他进制。以二进制转换为十六进制为例,其他进制转换与此相类似:
# 二进制转换为十六进制
num = 1010 #二进制数1010
str = str(num) #首先转换为str类型
int = int(str,2) #然后转换为十进制数
print('转换的十进制数是:',int,end='\n\n')
hex = hex(int) #将十进制数转换为十六进制数
print('转换的十六进制数是:',hex)
# 转换的十进制数是: 10
# 转换的十六进制数是: 0xa
下图为进制转换关系表: