原码、反码补码是为了解决计算机中加减法问题的,我们都知道计算机中的数据都是二进制,当然如果要进行数字加减法运算的话,计算机底层也是通过操作二进制的方式得出结果的。

那什么是原码呢,原码就是一个十进制数字的二进制表示。

比如7的八位二进制为:,14的八位二进制为:

我们将它的首位叫做标志位或符号位,正数的标志位为0,负数的标志位为1。

比如-14的八位二进制就可以表示为:

那什么是反码呢,反码即为除标志位以外的0变1,1变0,此处需要注意的是:正数的反码和补码均为原码

即:7的反码仍然为:,-14的反码为:

那什么是补码呢,补码即为反码的最右侧+1,由于正数的反码和补码均为本身,所以以-14为例子

-14的反码为:,在它最右侧+1可以表示为:

1 1 1 1 0 0 0 1
                     1
---------------
1 1 1 1 0 0 1 0

至此,我们来模拟一下二进制在计算机中加法的处理过程:

我们需要计算7 + (-14) 的值:

由于7的补码为其的本身,为:,-14的补码为:,使其相加

0 0 0 0 0 1 1 1
1 1 1 1 0 0 1 0
---------------
1 1 1 1 1 0 0 1

此处得到的为补码形式原码 反码 补码,我们需要仍然使用上面的规则转换成原码,再将原码转换为二进制后再转十进制看看结果是否正确。

1 1 1 1 1 0 0 1  => 现有补码

将其转换回反码:即最右侧-1,结果为:1 1 1 1 1 0 0 0
再逆向使用原码转反码的规则,除标志位以外 0变1,1变0,结果为 => 1 0 0 0 0 1 1 1

将转换回十进制可得结果为-7原码 反码 补码,与7 + (-14)的结果相同。


限时特惠:
本站持续每日更新海量各大内部创业课程,一年会员仅需要98元,全站资源免费下载
点击查看详情

站长微信:Jiucxh

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注