计算机利用补码加法来进行运算的。
1.(X + Y)补 =X补 +Y补
2.(X - Y)补 =X补 +(-Y)补
运算溢出判断:
假设两个操作数的符号位用S1f,S2f表示,结果符号位用Sf表示。结果符号位进位用Cs,最高有效位进位用Ch表示。
1.硬件判断逻辑一:当两个数符号相同(同为0或1),结果符号相反(为1或0)时溢出,为1是正溢出,为0是负溢出。用与或门来实现。溢出=S1fS2fSf || S1fS2fSf
2.硬件判断逻辑二:当两个数结果符号进位Cs与最高有效位进位Ch相同(同为0或1时)没有溢出,当两个数结果符号进位Cs与最高有效位进位Ch不同(一个为0,一个为1)。为1是正溢出,为0是负溢出。用异或门来实现。溢出=Cs ^ Ch
3.硬件判断逻辑三:用双符号位表示,当两个双符号相同(同为00或11)表示没有溢出,如果两个双符号位不同(为01或10)时,表示溢出。01为正溢出,10为负溢出。溢出= S1f ^ S2f
-------------------------------------------------------------------------------------------------------------
移位操作:逻辑移位和算术移位
1.逻辑移位:数码位置变化,数值不变。用于串操作,或判断某一位状态。
2.算术移位:数码位置变化,数值变化,符号位不变。
正数补码移位规则:数符号不变,空位补0.(单符号位不变,双符号第一位不变。)
(1).单符号位:单位符号,左移注意溢出,左移右移空位补0。
(2).双符号位:双符号位低位暂存进位。右移第二符号位移入最高有效位。左移右移空位补0
负数补码移位规则:数符号不变,左移空位补0,右移空位补1.(单符号位不变,双符号第一位 不变。)
(1).单符号位:单位符号,左移注意溢出。左移空位补0,右移空位补1.
(2).双符号位:双符号位低位暂存进位。右移第二符号位移入最高有效位。左移空位补0,右移空位补1.