计算机组成原理:为什么n位定点整数绝对值最大的负数用补码表示是-2^n?

还有为什么定点整数64位其绝对值最大负数用补码表示为1000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000
不是应该对1111111111……11111111最大绝对值负数求反+1得到1000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0000,0001嘛!?

“为什么n位定点整数绝对值最大的负数用补码表示是-2^n”
抄书都抄错了。用补码表示、n位整数中绝对值最大的负数是-2^(n-1).
例如补码表示8位整数,其有效范围是-128~+127,其中绝对值最大的负数是-128,也就是-2^7。其二进制表述方式为[1000 0000]。追问

不是太懂。请问能不能解释的再详细点?谢谢!

-2的n次方-1为什么她的补码表示不是10000……01呢

追答

补码是干什么的?方便将减法变换为加法。3 - 3 可以表示成 3 + (-3)
3的八位补码:0000 0011
-3的八位补码:1111 1101
相加得0。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-12-01

补码,其实是一个“代替负数”的正数。

使用了补码之后,在计算机中,就没有负数了。

同时,也就消除了减法运算。

那么,计算机,只许配置一个加法器,就可以走遍天下了。

使用补码的目的,就是“简化硬件”。

-------------------

一个正数(补码),怎么就能“代表负数”呢?

其理论,基于“周期性”的特点。

比如,限定使用 2 位 10 进制数(0~99)进行计数。

其计数周期就是:10^2 = 100。

此时,就有:

  25 - 1 = 24

  25 + 99 = (一百) 24

你舍弃进位,+99 就和-1 是等效的。

+98,也就能代替-2。

。。。

计算公式:代替负数的正数=负数+周期。

--------------------

在计算机中,一个字节是 8 位 2 进制数。

其计数周期是:2^8 = 256。

那么,-1 就可以用 255 = 1111 1111 (二进制) 代替。

这就是-1 的补码。

。。。

-128 的补码是:128 = 1000 0000。

--------------------

8 位 2 进制数,总共是 256 个组合。

其中有 128 个是负数:-1 ~ -128。

-128 = -2^(8-1),就是绝对值最大的负数。

一般化,就是说:

 n 位定点整数的补码,绝对值最大的负数是:-2^(n-1)。

即:

  [ X ]补 = X,      ( 0 ≤ X < 2^(n-1) )

  [ X ]补 = X + 2^n, (-2^(n-1) ≤ X < 0 )

--------------------

唐朔飞版《计算机组成原理》给出的补码定义,是“隔路”的。

他所说的 n,只是数值的位数。

他所说的补码的位数,则是 (n+1)。

与众不同,只是表示特立独行、标新立异而已,不足为道。

第2个回答  2020-04-26
因为补码没有负0,故1000,0000表示的是8位补码的最小数-128
相似回答