N个1(2进制)转为十进制,不知道是怎么推出2的n次方减去1这个公式的?

如二进制111转为十进制,
等于2(2)+2(1)+2(0),
括号里数字等于次方,这是怎么推出=2(3)-1的

2进制1与2进制10相差1
2进制11与2进制100相差1
2进制111与2进制1000相差1,理解了吗?

用相当于十进制里面:N个9 等于 1后面N个0减去1

个人想法,真的可以买一本《什么是数学》,把数学的很多概念学习一下。里面就有一节讲到进制,我现在都有印象

1 个赞

举例来说,111,这个二进制数,你先给它加 1,不就是 1000 了吗
1000 转为十进制,就是 2^3
要求的是 111 转十进制,在二进制的时候 111 就是 1000 减去 1
那么 111 转成十进制之后也就是 2^3-1 了

1 个赞

可惜选两个解决方案,二进制不经常用,第一眼有点违反直觉,也是各位数上相加,就是逢二进一,111+1=1000,111=1000-1
转为十进制就是2^3-1

也可以这么理解: 三位二进制可以表示 2^3=8 个正数,范围是十进制的 0~7 ,既然是从 0 开始表示的,那最后一个数就得是 8-1 了(其实还是楼上说的进位)

1 个赞

全是 1 的二进制数就是一个公比为 2 的等比数列求和,还记得高中学过的数列代一下求和公式就出来了

发现一个五笔!

滚远点

1 个赞

因为二进制的 111 + 1 = 1000 (2^4)。
所以 11…1 ( n 个 1) = 2^(n+1) - 1;
这类似于,999 = 1000 -1, 9999 = 10000 - 1,一个道理。

1 个赞

@Qingwa 论坛里混进来一颗老鼠屎 ,就在此贴。