如何理解小甲鱼说的二进制转换(2的n次方减1)
二进制转换为10进制二进制 十进制 小甲鱼说的2n次方-1
1 2^0 (2的0次方) 1 2^1-1
10 2^1 (2的1次方) 2 2^1
11 2^1+1 ((2的1次方)+1) 3 2^2-1 (4-1)
100 2^2 (2的2次方) 4 2^2
101 2^2+1 ((2的2次方+1) 5 2^2+1
110 2^2+2^1 (2的2次方+2的一次方) 6 2^3-2
111 2^2+2^1+2^0 (2的2次方+2的一次方+2的0次方) 7 2^3-1
1000 2^3 8
1001 2^3+2^0 9
1010 2^3+2^1 10
1011 2^3+2^1+2^0 11
1100 2^3+2^2 12
1101 13
1110 14
1111 2^3+2^2+2^1+2^0 (8+4+2+1) 15 二进制的 1 相当于 2^1-1 等于十进制的 1
二进制的 11 相当于 2^2-1 等于十进制的 3
二进制的 111 相当于 2^3-1 等于十进制的 7
…… https://iknow-pic.cdn.bcebos.com/242dd42a2834349b533bac2ac4ea15ce36d3be64?x-bce-process=image/resize,m_lfit,w_600,h_800,limit_1
我觉得你按照这个更常规的方法来理解会不会更好
1其实是0001 那么就是0*2^3+0*2^2+0*2^1+1*2^0=1
继续
10其实是0010,就是0*2^3+0*2^2+1*2^1+0*2^0=2
11其实是0011,就是0*2^3+0*2^2+1*2^1+1*2^0=3
100其实是0100,就是0*2^3+1*2^2+0*2^1+0*2^0=4
这样子会不会比你提问列得更有规律更容易理解? 比如说一个bit八位吧
这个数最大可以表示的数为11111111,即八位每个都是1
你现在想把这个数换成10进制,会很麻烦,因为要计算每个位的2阶乘
现在把这个数加一,变成100000000,即九位数
然后算这个数字的十进制大小,就是1*2(位数-1)
得到2^8
最后减去加的一:2^8-1
页:
[1]