沁卜心 发表于 2020-2-9 14:40:33

如何理解小甲鱼说的二进制转换(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

zltzlt 发表于 2020-2-9 14:41:51

二进制的 1 相当于 2^1-1 等于十进制的 1
二进制的 11 相当于 2^2-1 等于十进制的 3
二进制的 111 相当于 2^3-1 等于十进制的 7
……

4goodworld 发表于 2020-2-9 21:15:18

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
这样子会不会比你提问列得更有规律更容易理解?

magicpower 发表于 2020-2-26 21:06:42

比如说一个bit八位吧
这个数最大可以表示的数为11111111,即八位每个都是1
你现在想把这个数换成10进制,会很麻烦,因为要计算每个位的2阶乘
现在把这个数加一,变成100000000,即九位数
然后算这个数字的十进制大小,就是1*2(位数-1)
得到2^8
最后减去加的一:2^8-1
页: [1]
查看完整版本: 如何理解小甲鱼说的二进制转换(2的n次方减1)