...8位的补码,其真值范围为-128~127. 我想不通,为什么会是-128...

发布网友 发布时间:2024-10-23 22:59

我来回答

3个回答

热心网友 时间:2024-11-16 05:27

补码回避了0有多种表示的问题以及循环进位的需要。在补码表示中,负数以位模式表示为正值的反码加1。补码里 00000000表示“正"0,10000000不是"负"0,是-128

热心网友 时间:2024-11-16 05:22

1、补码表示的有符号数,对于正数来说同原码、反码一样,但负数的数值位部分为其绝对值按位取反后末位加1所得。
2、借鉴上面的答案:

补码,与其真值,是一一对应的。
不存在一个数,有两个码的情况。
所以,真值,也是 256 个。
把 256 个真值,分成“个数相等”的两部分,就是:
 有一半(128 个)是负数,应该就是:-128~-1。
 另一半(128 个)是非负数,即: 0~+127。
3、然后结合考虑
在非负数的时候,表示同原码和反码一样,即0~+127
而在负数的时候,为什么要其绝对值按位取反后末位加1呢?因为反码里面+1就是数值上-1,
所以0~-127就变成了-1~-128,
所以-127的补码为1000 0001,而-128的补码为1000 0000
是不是很巧妙o(* ̄︶ ̄*)o

热心网友 时间:2024-11-16 05:23

字长 8 位,共有 2^8 = 256 组代码。

补码,与其真值,是一一对应的。

不存在一个数,有两个码的情况。

所以,真值,也是 256 个。

把 256 个真值,分成“个数相等”的两部分,就是:

 有一半(128 个)是负数,应该就是:-128~-1。

 另一半(128 个)是非负数,即: 0~+127。

综合,就是:-128  ~ +127。

无论怎么想,也不会是:-127  ~ +127。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com