发布网友
共3个回答
热心网友
原码,反码,补码针对的是定长二进制存储器表示的有符号整数。
正数的原码,反码,补码都相同。
负数的原码最高位为1,其他位为整数的绝对值(零有+0、-0之分)。
负数的反码最高位为1,其他位为整数的绝对值按位取反(零有+0、-0之分)。
负数的补码最高位为1,其他位为整数的绝对值按位取反再加一(零没有+0、-0之分,最常用)。
比如-1的原码为0x80000001,反码为0xFFFFFFFE,补码为0xFFFFFFFF。
//---------
在计算绝对值、取反、加一的过程中,无论提升成多少位去计算,最后装填时,都保留后几位(符号位以外相应位数)。
热心网友
计算机中,只用补码表示带符号数。
在计算机中,并不存在原码反码。
求补码,也有更简单的方法,也用不着原码反码。
所以,原码反码,都没有任何用处。
让人学习原码反码,不就是忽悠吗?
------
计算机有:八位机、16 位机、32 位机。。。
在位数确定后,减去一个数,可以用加上另一个数,代替。
比如,限定使用两位十进制数,减一,你就可以用 +99 代替。
25 - 1 = 24
25 + 99 = (1) 24
取两位的结果,舍弃进位,这两种算法,功能就是相同的。
99,就称为-1 的补数。
98,就是-2 的补数。
。。。
利用补数,就可以用加法代替减法。
补数怎么求呢?
两位十进制,共有 100 个数字。于是:99 = 100+(-1)。
------
计算机使用二进制,补数,就改称:补码。
八位二进制,共有 256 个数字。于是:补码 = 256+(负数)。
16 位二进制,共有 2^16 个数字。于是:补码 = 65536+(负数)。
正数,不需要做变换,直接相加即可。
计算机中,并没有原码和反码,所以,不用关心它们。
------
在电脑上为什么要用补码呢?
利用补码,就可以用加法代替减法。
那么,计算机中,只要有一个加法器,便可进行加减运算了。
乘除运算,也不在话下了。
热心网友
原码、反码、补码和移码是机器存储一个具体数字的编码方式,具体转换方法请参考视频教程:
原码反码补码移码概念和转换方法