整数补码的运算
模:计量器最大容量。如一个4位寄存器模为2^4,8位寄存器模为2^8。
求补运算
设X=+75,则[X]补=01001011。
设X=-75,则[X]补=10110101。
采用补码进行加法运算的规则为:
[X+Y]补=[X]补+[Y]补
补码剑法的规则为:
[X-Y]补=[X]补+[-Y]补
下面举个列子:
设X=66,Y=54,以2^8为模,补码运算为X±Y。
解:[X]补=01000010,[Y]补=00110011,[-Y]补=11001101
[X]补 01000010
+ [Y]补 00110011
--------------------------------------------------
[X+Y]补 01110101
[X]补 01000010
+ [-Y]补 11001101
--------------------------------------------------
[X-Y]补 100001111
在[X-Y]补中最高位(第9位)被运算器丢弃,保留在位标志寄存器中
所以:X+Y=+117,X-Y=+15
下面举一个溢出的情况
已2^8为模,补码运算求66+99,-66-99。
解:因为[66]补=01000010,[99]补=01100011,[-66]补=10111110,[-99]补=1011101
[66]补 01000010
+ [99]补 01100011
--------------------------------------------------
[66+99]补 10100101
[-66]补 10111110
+ [-99]补 10011101
--------------------------------------------------
[-66-99]补 01011011
最高位(第9位)被运算器丢弃,保留在位标志寄存器中
得到:66+99=-91,-66-99=+91
这是因为运算结果超出了补码表示的范围,造成的溢出。
对于有符号数范围为:
-2^8-1<=(X,Y,X+Y)<2^n-1
其中n为字长。
这节就到这,节说二进制的相关技巧和进位和溢出