http://wenku.baidu.com/view/369a4c8502d276a200292ea8.html
一、为什么计算机中所有的数值都是用补码(而不是用原码、反吗)表示?
1、可以将符号位与其他位统一处理,无须单独设置符号处理线路。
2、只使用加法器就可以实现加减运算。
3、两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃。
二、用补码表示的真值,正数与负数是怎样转换的?
例:求-7的补码表示。
解1:+7的补码表示为00000111,按照转换规则得出-7的补码表示为11111001。
解2:还有一种做法是根据原码“求反加1”,这种做法将符号位单独拿出来,剩余的位数取反加1。
- 7的原码表示为10000111,将符号位除外的其他位“求反”得11111000,再将其“加1”得11111001。
三、补码定点加减运算是怎样判断溢出的?
通常用符号位产生的进位与最高有效位产生的进位异或操作后,按其结果进行判断。若异或结果为1,表示溢出;异或结果为0,则无溢出。也就是说最高位和次高位同时进位,无影响;但其中只有一个进位,产生溢出。
四、补码定点加减法硬件配置
图中寄存器A、X、加法器的位数相等,其中A存放被加数的补码,X存放加数的补码。当作减法时,由“求补控制逻辑"将X送至加法器,并使加法器的最末位外来进位为1,以达到对减数求补的目的。运算结果溢出时,通过溢出判断电路置”1“溢出标记V。Ga为加法标记,Gs为减法标记。