因此,在二进制中,要找到给定 N 位数可以表示的最大数,您可以使用:
2^N - 1
但是为什么是-1。为了尝试理解它,我创建了一个 3 位系统并尝试了一些示例:
2^1 = (2) - 1
- 0 0 1 --> 1
2^2 = (4) - 1
- 0 1 0 --> 2
- 0 1 1 --> 3
2^3 = (8) - 1
- 1 0 0 --> 4
- 1 0 1 --> 5
- 1 1 0 --> 6
- 1 1 1 --> 7
所以一切都按计划进行,但为什么是-1。这可能听起来像一个愚蠢的问题,但正如你在上面看到的,我已经做了相当多的研究。