十进制是逢十进一,二进制就是逢二进一。
十进制里最大的数字是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种人…第一种是懂二进制的,另一种是不懂二进制的。”
你现在是第一种人了吗?