计算机采用补码数进行运算的原因:
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
补码的特性:
1、一个负整数(或原码)与其补数(或补码)相加,和为模。
2、对一个整数的补码再求补码,等于该整数自身。
3、补码的正零与负零表示方法相同。
补码最大的好处就是可以将加法和减法统一,于是可以简化运算单元的设计、减小晶圆面积、降低散热……
例如,要计算55h - 33h,可将其换算为55h + (-33h),按补码表示即为55h + CDh,相加后结果为22h。看吧,就是这么方便。
使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。另外,两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
参见:http://baike.baidu.com/view/377340.htm?fr=ala0_1_1
计算机的硬件,只有加法器。
负数、减法,都必须用加法来完成。
你看十进制:
24 - 1 = 23
24 + 99 = (一百) 23
舍弃进位,+99 可以当做-1 进行运算。
+99 就是-1 的补数。
补数(补码),就是一个“代替负数进行运算的正数”。
对于 2 位 10 进制数,求补数的公式:
补数=负数+10^2。
计算机中,用二进制,就称为补码。
对于 8 位 2 进制数,求补码的公式:
补码=负数+2^8。
-1 的补码是:-1 + 256 = 255 = 1111 1111。
-2 的补码是:-2 + 256 = 254 = 1111 1110。
。。。
-128 的补码是:128 = 1000 0000。
求补码,不要用“原码取反加一”。
那个方法,是无法求出-128 的补码的。
而且,你也不能理解补码的意义。
---------------------
计算机采用补码数进行运算的原因是什么?
统一加减法,硬件简化。