补码加法的步骤
发布时间:2014/6/1 21:46:13 访问次数:2122
(1)将两个数转换为补码形式。
(2)对两个数的补码形式进行二进制加法运算,如果出现向高位的进位则舍弃不要。
(3)判断结果是否溢出:如果溢出,QSH-060-01-F-D-TR则本次计算不正确,进入溢出处理流程;否则,对结果再次求补,即得到结果的真值。
所谓溢出,是指运算的结果超出了给定的二进制存储空间的表示范围。加法运算中,两个同号数值相加才可能出现溢出情况。因此,判断溢出的标志是:如果两个正数相加的结果符号位为,或者两个负数相加的结果的符号位为0,就说明出现了溢出。当出现溢出时,有两个解决方法:一是直接舍弃,报错;二是增加存储空间位数,重新计算。
在下面的例子中,不做特别说明,补码形式均用8位二进制数表示。
例如,用补码计算64+(-10)。
第一步:将64和-10变成补码形式。
第二步:执行补码加法:
0100 0000
+ 1111 0110
1 0011 0110 B~OOll OllOB(舍弃向最高位的进位)
第三步:因为正数和负数相加不可能产生溢出,结果正确,可求真值
0011 0llOB=54
例如,用16位补码计算64+65,
第一步:将64和65变成补码形式:
[64】补=OOO0 0000 0100 0000B [65]aiF=OOO0 0000 0100 000IB
第二步:执行补码加法:
0000 0000 0100 0000
+ 0000 0000 0100 0001
= 0000 0000 1000 0001
第三步:因为正数和正数相加结果应该还是正数,而结果的符号位为0,说明结果正确,可求真值
0000 0000 1000 000IB=129
(1)将两个数转换为补码形式。
(2)对两个数的补码形式进行二进制加法运算,如果出现向高位的进位则舍弃不要。
(3)判断结果是否溢出:如果溢出,QSH-060-01-F-D-TR则本次计算不正确,进入溢出处理流程;否则,对结果再次求补,即得到结果的真值。
所谓溢出,是指运算的结果超出了给定的二进制存储空间的表示范围。加法运算中,两个同号数值相加才可能出现溢出情况。因此,判断溢出的标志是:如果两个正数相加的结果符号位为,或者两个负数相加的结果的符号位为0,就说明出现了溢出。当出现溢出时,有两个解决方法:一是直接舍弃,报错;二是增加存储空间位数,重新计算。
在下面的例子中,不做特别说明,补码形式均用8位二进制数表示。
例如,用补码计算64+(-10)。
第一步:将64和-10变成补码形式。
第二步:执行补码加法:
0100 0000
+ 1111 0110
1 0011 0110 B~OOll OllOB(舍弃向最高位的进位)
第三步:因为正数和负数相加不可能产生溢出,结果正确,可求真值
0011 0llOB=54
例如,用16位补码计算64+65,
第一步:将64和65变成补码形式:
[64】补=OOO0 0000 0100 0000B [65]aiF=OOO0 0000 0100 000IB
第二步:执行补码加法:
0000 0000 0100 0000
+ 0000 0000 0100 0001
= 0000 0000 1000 0001
第三步:因为正数和正数相加结果应该还是正数,而结果的符号位为0,说明结果正确,可求真值
0000 0000 1000 000IB=129