进制
# 进制
# 二进制 八进制 十进制 十六进制
计算机只保存二进制 0 和 1,同时支持八进制和十六进制
二进制 (Bin) 八进制 (Oct) 十六进制 (Hex) 十进制 (Dec) python 中都能识别
以 0b 开头的数字是二进制 0-1 bin()
以 0o 开头的数字是八进制 0-7 oct ()
以 0x 开头的数字是十六进制 0-9 A-F hex ()
# 进制转换
# 二进制转八进制
3 个为一组如开头不够 3 位则用 0 填充
101 010
各组 3 位数倒着各自乘以 2 的 0 到 X 次方 1-2-4-8-16-32-64
1*2 的零次方 + 0*2 的一次方 + 1*2 的二次方 = 1+0+4=5
0*2 的零次方 + 1*2 的一次方 + 0*2 的二次方 = 0+2+0=2
则 42 的八进制为 5 2
# 二进制转十六进制
4 位为一组开头不够 4 位则用 0 填充
各组 4 位数倒着各自乘以 2 的 0 到 X 次方
0010 1010
0*2 的零次方 + 1*2 的一次方 + 0*2 的二次方 + 0*2 的三次方 = 0+2+0+0=2
0*2 的零次方 + 1*2 的一次方 + 0*2 的二次方 + 1*2 的三次方 = 0+2+0+8=10=A
则 42 的十六进制为 2A
# 二进制转十进制
不用分组,直接倒序各自乘以 2^0 到 2^X
101010
0*2^0+1*2^1+0*2^2+1*2^3+0*2^4+1*2^5=0+2+0+8+0+32=42
# 十进制转二进制
将十进制的数除以要转换的进制数,二进制除以 2,不断的除以 2 直到结果为 0,除以结果的余数为转换符,最后倒序排列完成转换
42/2=21 余 0
21/2=10 余 1
10/2=5 余 0
5/2=2 余 1
2/2=1 余 0
1/2=0 余 1
再倒序排列则为 101010
# bin、oct、hex 内置函数
使用 bin () 函数可以将数字 / 十进制转变成二进制
使用 oct () 函数可以将数字 / 十进制转变成八进制
使用 hex () 函数可以将数字 / 十进制转变成十六进制