0

因此,在二进制中,要找到给定 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。这可能听起来像一个愚蠢的问题,但正如你在上面看到的,我已经做了相当多的研究。

4

2 回答 2

1

因为你可以表示 0,它总是在所有排列中占据一个位置。

于 2012-10-29T09:44:44.620 回答
1

显示的研究应该已经揭示了答案,但你忘记了零。

三位能够表示2^3不同的最小值为零,所以最大值一定2^3-1

请注意,如果您使用不同的系统(例如有符号二进制),最小值最大值可能会发生变化,但值的计数不会发生变化。

于 2012-10-29T09:45:20.407 回答