原码 反码 补码,补码的意义及由来 您所在的位置:网站首页 什么是反码和补码的转换过程 原码 反码 补码,补码的意义及由来

原码 反码 补码,补码的意义及由来

2024-07-17 10:21| 来源: 网络整理| 查看: 265

1.机器数和真值

        计算机用二进制存储数据。一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机用机器数的最高位存放符号,正数为0,负数为1。 

        一般计算机的字长为8位,最高位为符号位。十进制数3转化为机器数就是 00000011 ,十进制数-5转化为机器数就是 10000101 。

        由于符号位的存在,机器数10000101的真实值是-3,而不是形式值133。因此为了区别形式值和真实值,将规定符号位的机器数的真实数值称为机器数的真值。 

2.原码 反码         原码:

        原码就是符号位加上真值的绝对值。

        例子:3的原码为:00000011

                   -4的原码为:10000100

        反码:

        正数的反码是其本身

        负数的反码:符号位不变,其余位取反

        例子:-4的反码:11111011

3.补码的计算,由来和意义

        计算机在执行计算时,只对机器数进行加法运算。不用减法运算的原因是,设计减法运算会使得电路变得繁琐。同时由于符号位的特性,如果设计电路识别符号位,电路的复杂程度更会大幅上升。所以人们想出了一个好方法。如计算1-2时,将其转化为1+(-2)来计算,就同时优化掉了减法操作和对符号位的识别。具体的计算依靠的便是补码。

        补码的计算:

        正数的补码是其本身。

        负数的补码是其反码+1。

        例子:-4的补码:11111011+1=11111100

        注意:这不是补码的定义,仅是补码的计算方式

        补码的意义及由来:

        在计算机器数的减法时,直接使用原码是不行的。如5+(-3):00000101+10000011,结果为10001000,显然错误了。于是补码就应运而生。举个钟表的例子吧。

        有一个不同的钟表,长这样:

        4点往回走5个小时,时间就到了11(-1)点,这个过程可以看作4+(12-5)=11。由于4-5和4+7的值相同,所以我们可以把减法转换为加法。二进制数也是这样。

        加法计算中的7是怎么来的呢?7=12-5,12可以简单理解成进位,即最大值+1。

        所以 举个三位二进制数的例子。如果要求101-010(5-2),我们可以转换成5+(8-6)即101+110.这里,010就是110的补码

        我们可以来计算一下。110取反,即111-110=001,为110的反码。按照补码的计算,反码加一,也即111-110+001,调换顺序,111+001-110.加粗的部分刚好就是模的大小(8)所以这就是补码的来历,即凑出形似8-6的格式来完成减法的计算。这就是补码的由来

        补码的真正定义

        



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有