七位二补

Seven bit and two compliment

如果我们对整数使用七位二进制补码表示,那么什么是 可以用这种方式表示的整数(事物)的数量? 可以用这种方式表示的最小(最多)负整数? 可以这样表示的最大正整数?

真的很简单

二进制计数通常像

>00000000 (8) = 0
>00000001 (8) = 1
>00000010 (8) = 2
>00000011 (8) = 3
>etc...etc.

在 7 位中,最后一位决定它是负数还是正数

1 为负,0 为正

> 10000000 = -128
> 10000001 = -127
> 10000010 = -126
> On...and on...
> 11111111 = -1
> 00000000 = 0
> 00000001 = 1
> 01111111 = 127

你能达到的最低值是 -128

最高可以达到 127

批准的答案不正确。 对于 2 的补码的 7 位,它的范围可以从 -64 到 63。(传统上,7 位只能达到 2^n-1,即 128,但 MSB 保留用于符号,因此我们可以有 6 位来表示数据。 我们将得到 64 个正值和 63 个负值,答案应该是 -64、63。)

不是,因为在二进制补码中,最高位是符号位。 0000001是+1,正数。

这就是为什么二进制补码的7位数字的范围是-64到63,因为64是不可表示的(否则就是负数)。

最大的负数是 1000000。前导 1 表示它是负数,要获得该数的大小,请翻转所有位 (0111111),然后加一 (1000000 = 64)。所以得到的数字是 -64 到 63。