python进制转换有着多种方法。
本文介绍的是python通过调用内置函数hex()、bin()、oct()、int()这四种方式进行常见的进制转换
函数见下表:
原理:先将读入的字符串x进行转换为十进制,再由十进制进行相关的转换。
注意的一点是:bin()、oct()、hex()的返回值均为字符串,且分别带有0b、0o、0x前缀。故后面在读取的时候需要舍去前缀。
以十六进制转换为例:
a = "FF"
# 十六进制转二进制
b = bin(int(a,16))[2:]
# 因为上文提过bin函数带有两位数的前缀,故加上[2:]舍去前缀
print(b) # 11111111
# 十六进制转八进制
b = oct(int(a,16))[2:]
print(b) # 377
# 十六进制转十进制
b = int(a,16)
print(b) # 255
二进制转换:
a = "1011100"
# 二进制转八进制
b = oct(int(a,2))[2:]
# [2:]从第二位数开始读起
print(b) # 134
# 二进制转十进制
b = int(a,2)
print(b) # 92
# 二进制转十六进制
b = hex(int(a,2))[2:]
print(b) # 5c
十进制转换:
同上可得:
a = "92"
# 十进制转二进制
b = bin(int(a,10))[2:]
# 加上[2:]从第二位数开始读起
print(b) # 1011100
# 十进制转八进制
b = oct(int(a,10))[2:]
print(b) # 134
# 十进制转十六进制
b = hex(int(a,10))[2:]
print(b) # 5c