原码、反码和补码是为了解决计算机中加减法问题的,我们都知道计算机中的数据都是二进制,当然如果要进行数字加减法运算的话,计算机底层也是通过操作二进制的方式得出结果的。
那什么是原码呢,原码就是一个十进制数字的二进制表示。
比如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
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。