原码,补码,反码有什么作用?
原码反码,都没有任何用处,计算机中,也没有原码和反码。
补码,可以把减法转换成加法,可以简化计算机的硬件。
下面以八位为例说明补码的特点。
数字 0 的存放形式是:0000 0000。
数字+1,就是加上一:0000 0001。
数字+2,就再加上一:0000 0010。
数字+3,就依此类推:0000 0011。
... ... 依次加一,即可。
----------
负数,就是依次减一。
数字 0 的存放形式是:0000 0000。
数字-1,就是减一:0000 0000-1,
只保留八位,可得:1111 1111(=255)。
数字-2,就再减一:1111 1110(=254)。
数字-3,继续减一:1111 1101(=253)。
... ... 然后你就依次减一吧 ... ...
----------
以上,是计算机中的补码。
---------
八位补码的表示范围:-128~+127。
八位补码的计算公式:
正数的补码:就是正数本身。
负数的补码:256-该负数。
(如果需要二进制,你就再转换一下。)
---------
补码,完全是由二进制加一减一自然形成的,和原码反码没有任何关系。
计算机中,也没有原码和反码。
所以,原码和反码,都没有任何用处。
----------
用补码代替负数,就可以把减法,转换为加法运算。
因此,计算机只要有一个加法器,就够用了。
例如: 7-3 = 4。
用补码的计算过程如下:
7 的补码=0000 0111
-3的补码=1111 1101
--相加-------------
得 (1) 0000 0100 = 4 的补码
舍弃进位,只保留八位作为结果,就是 4。
这就用加法,实现了减法运算。
原码和反码,并没有这种功能。