补码加减法运算例题 补码加法溢出怎么办利用双符号位可以判断是否产生溢?
浏览量:2403
时间:2021-03-12 07:41:07
作者:admin
补码加法溢出怎么办利用双符号位可以判断是否产生溢?
补码一位乘法中,部分积为什么采用双符号位?
“双符号位补码”也称为“变形补码”。两个二进制位用于表示数字的符号位,其余的数字位与公共补码相同。用变形补码进行加减运算时,可根据双符号位判断以下四种情况:11——运算结果为负;00——运算结果为正;10——运算结果向下溢出(负溢出);01——运算结果向上溢出(正溢出)。
如何判断两个补码表示的有符号数在做加减法运算时产生溢出?
判断补码加法运算溢出的方法有三种:
[method 1
]分别是XF和YF的符号位,ZF是运算结果的符号位。
当XF=YF=0(两个数字均为正)和ZF=1(结果为负)时,出现负溢出;
当XF=YF=1(两个数字均为负)和ZF=0(结果为正)时,出现正溢出。
[方法2
]CS表示符号位的进位,CP表示最高值位的进位,⊕表示异或。
如果CS⊕CP=0,则不存在溢出;
如果CS⊕CP=1,则存在溢出。
[方法3
]双符号位运算(正号为00,负号为11)
如果运算结果的符号位为“01”,则为正溢出;
如果结果的双符号位为10,则为负溢出;
如果结果的双符号位为00或11,则为无溢出。
补码的加法是算数加还是逻辑加?就是要不要进位?
如果是1位符号位的普通补码,经过加法和减法运算,如果符号位s=0,则结果为正,如果s=1,则结果为负。我们还应该注意符号进位CS和最大值进位CP。如果CS⊕CP=0,则没有溢出;如果CS⊕CP=1,则有溢出,(⊕表示XOR)。如果是双符号位的变形补码,经过加减运算:根据双符号位判断如下四种情况:11——运算结果为负;00——运算结果为正;10——运算结果向下溢出(负溢出);01——运算结果向上溢出(正溢出)。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。