Most important!
关键:十进制是bridge
基本1: A进制(a) –> 十进制(d)
d=int(a,A)
说明:A的取值为2,8,16- 基本2: 十进制(d)–> A进制(a)
a=bin(d)
a=oct(d)
a=hex(d)
So,利用以上两个基本知识,可以实现任意进制的随意转换啦~
补充:
二进制的每三位–>八进制的一位
二进制的每四位–>十六进制的一位
例1:二进制转八进制
x='1011100110111001'
y=int(oct(int(x,2))[2::])
y #这样我们得到的八进制是一个整数,后面可以直接使用
结果为:134671
# 二进制转八进制的详细解剖
x='1011100110111001'
y=oct(int(x,2)) #得到的y是字符,长相是酱紫的:'0o134671'
z=y[2::] #python返回的结果前面两位标识符我们不需要哈,所以从第三位数开始取值
w=int(z) # z是字符,将其转换为整数,保存在变量w中
y
int(oct(int(x,2))[2::])
结果为:134671
例2:八进制转十六进制
# 八进制转十六进制
x='102'
y=hex(int(x,8))
y
结果为:’0x42’