python中各个进制数据的表示
a = 23 # 默认的数字都是表示十进制
print(a)
a = 0b10111 # 以0b开头的数字表示二进制
print(a)
a = 0o27 # 以0o开头的数字表示八进制
print(a)
a = 0x17 # 以0x开头的数字表示十六进制
print(a)
默认打印出来的数据都是十进制。
可以利用英文字母“box”进行记忆
进制之间的相互转化
十进制转化为二进制
拿到一个十进制的数据,我们将它一直除以2,一直到商为0,将过程中得到的余数逆排,就得到二进制的表示方式了。
简记为“正向除2,逆向取余”。
例如:十进制数23
二进制转化为十进制
用二进制的位对应相乘1 2 4 8 16…,也就是2的n-1次方,以10111为例:
二进制转化为八进制
将二进制的位三个位分为一组,缺位补0,每一组按照二进制转化为十进制的方法,最后按次序写出,就得到八进制数据。例如:10111
将二进制转化为十六进制
原理同八进制,将二进制的为四位分为一组,缺位补0,然后按照二进制转化为十进制的方法依次写出,例如10111
用代码进行位制转换
以上是进制转换的原理,手算未免太累,这个过程在python中可以利用代码进行实现。
a = 23
print(bin(a)) # 转化为二进制
print(oct(a)) # 转化为八进制
print(hex(a)) # 转化为十六进制