计算机系统原理第二周 2-2-3(补码和真值的对应关系)

本文探讨了计算机科学中补码表示法与真值之间的对应关系,补码是一种重要的数值表示方式,对于理解计算机如何处理负数至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

W2-2-3 

补码和真值的对应关系









### 1. -1010110 的原码补码 对于8位二进制数: - **原码**:最高位表示符号位,其中`0`代表正数,`1`代表负数。因此 `-1010110` 表示成8位的原码形式为 `11010110`。 - **反码**:对原码除符号位外逐位取反得到反码。所以该数字的反码就是将 `1010110` 每一位反转(注意保持首位不变),结果为 `10101001`。 - **补码**:在反码的基础上加一形成补码,即 `10101001 + 1 = 10101010`。 ### 2. -127 的原码、反码及补码 同样地,在8位系统下, - **原码**: 因为我们讨论的是一个带符号的数值 `-127` ,那么其对应的八位二进制表达应该是 `11111111`. - **反码** : 取非操作后得到 `10000000` - **补码** : 对上述反码再做加法运算 (+1),最终得 `10000001` ### 3. -1 定点纯小数 (假设是Q7格式) 定点数的小数部分取决于我们如何解释这个值。如果我们考虑它是一个 Q7 格式的小数 (-1 到+1之间的范围), 则意味着整个字节中有七位用于分数而只有一位作为符号。 - **原码** :由于这是个小于零的小数,则第一位设为“1”,其余全部填满 "1" 来表示最大可能的正值相反数,也就是最接近 -1 的情况 (`1.111111`) 转换成8-bit 就变成了 `11111111` - **反码** **补码** 都会变成全 “0” 加上一个额外增加的一位以补偿减去的那个单位(`10000000`). 然而对于实际应用来说,这种情况下直接采用 `10000000` 更常见. ### 4. -1 定点纯整数 如果是指定范围内最小的一个有符号整型(-1), 具体表现为: - **原码**, **反码**, 或者 **补码** 形式都将是相同的,并且等于 `10000001`. 这是因为在这个特例里,“真值”的绝对值正好匹配了所有可用编码的最大限度;当涉及求反并加上常量时它们实际上不会改变。 §§相关问题§.§: 1. 原码、反码、补码之间有何区别? 2. 怎样通过硬件电路快速计算出给定数目的补码3. 在计算机内部处理数据的过程中为什么更倾向于使用补码而不是其他形式?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值