Python3 笔记:二进制的转换

发布于:2024-05-16 ⋅ 阅读:(125) ⋅ 点赞:(0)

十进制是逢十进一,二进制就是逢二进一。
十进制里最大的数字是9,二进制里最大的数字是1。

1 10 100 1000 10000 100000 1000000 10000000
10^0=1 10^1=10 10^2=100 10^3=1000 10^4=10000 10^5=100000 10^6=1000000 10^7=10000000
2^0=1 2^1=2 2^2=4 2^3=8 2^4=16 2^5=32 2^6=64 2^7=128

1、十进制转二进制的方法:

除2取余法:将数值不断除以2并记录余数,直到商为0。然后将余数按照相反的顺序排列,即可得到对应的二进制数。

十进制数 67 ——二进制数 1000011

在Python中可以用 bin() 来查看对应的二进制数。(binary 英 /ˈbaɪnəri/ n.二进制数)

num1 = 67
print(bin(num1))	# 运行结果:0b1000011
print(bin(2))	# 运行结果:0b10
print(bin(4))	# 运行结果:0b100

注意:bin()的参数不能输入字符串或者浮点型。输出结果会带着前缀"0b"。

2、二进制转十进制的方法:

乘2的幂次方:从二进制数最右边开始往左依次乘2的幂次方。最右边的乘2的0次方,右边数第二个乘2的1次方,以此类推,最后求和,就得到了对应的十进制数。

二进制数 11101 —— 十进制数 29

在Python中 int("x", 2) 可以把二进制转换为十进制。(integer 英 /ˈɪntɪdʒə(r)/ n.整数)

第1个参数是二进制数,记得要加上双引号。
第2个参数是2,表示第1个参数是二进制。

print(int("11101",2))	# 运行结果:29
print(bin(29))	# 运行结果:0b11101

3、其实十进制转二进制也可以采用2的幂次方这种方法:

先看小于且最接近的该数值的 2的幂次方是哪一个,然后减掉它,再看小于且最接近减掉后的结果的 2的幂次方是哪一个,再减掉它,重复到值为0不能再减。最后将运算中出现了2的幂次方的位置写1,没有出现的就写0。

比如:十进制数33,小于且最接近的是   2的5次方32,

再33-32=1,那就在2^5填1,2^0填1,其他没有出现的填0,就得到100001

2^7=128 2^6=64 2^5=32 2^4=16 2^3=8 2^2=4 2^1=2 2^0=1
    1 0 0 0 0 1

再比如:十进制数100,小于且最接近的是 2的6次方64,

再100-64=36, 小于36且最接近的是 2的5次方32,

然后100-64-32=4,4就是 2的2次方。所以是1100100

2^7=128 2^6=64 2^5=32 2^4=16 2^3=8 2^2=4 2^1=2 2^0=1
  1 1 0 0 1 0 0

print(bin(33))	# 运行结果:0b100001
print(bin(100))	# 运行结果:0b1100100
print(int("100001",2))  # 运行结果:33
print(int("1100100",2)) # 运行结果:100

“世界上有10种人…第一种是懂二进制的,另一种是不懂二进制的。”

你现在是第一种人了吗?