Binary 在确定N位可以代表的最大数量时,为什么需要负1?
因此,在二进制中,要找到表示给定N个比特数的最大数,可以使用: 2^N-1 但是为什么是-1。为了尝试理解它,我创建了一个3位系统,并尝试了一些示例: 2^1=(2)-1Binary 在确定N位可以代表的最大数量时,为什么需要负1?,binary,Binary,因此,在二进制中,要找到表示给定N个比特数的最大数,可以使用: 2^N-1 但是为什么是-1。为了尝试理解它,我创建了一个3位系统,并尝试了一些示例: 2^1=(2)-1 0 0 1-->1 2^2=(4)-1 0 1 0-->2 0 1-->3 2^3=(8)-1 1 0-->4 1 0 1-->5 1 10-->6 1-->7 所以一切都按计划进行,但为什么是-1。这听起来可能是个愚蠢的问题,但正如你在上面看到的,我已经做了大量的研究。因为你可以表示0,它总是占据所有排列中的一个
- 0 0 1-->1
- 0 1 0-->2
- 0 1-->3
- 1 0-->4
- 1 0 1-->5
- 1 10-->6
- 1-->7
所以一切都按计划进行,但为什么是-1。这听起来可能是个愚蠢的问题,但正如你在上面看到的,我已经做了大量的研究。因为你可以表示0,它总是占据所有排列中的一个位置。显示的研究应该已经揭示了答案,但你已经忘记了零 三位可以表示不同的值。最小值为零,因此最大值必须为
2^3-1
请注意,如果使用不同的系统(如有符号二进制),则最小值和最大值可能会更改,但值的计数不会更改