设两个 8 位补码表示的数 b7b6b5b4b3b2b1b0和 a7a6a5a4

资格题库2022-08-02  39

问题 设两个 8 位补码表示的数 b7b6b5b4b3b2b1b0和 a7a6a5a4a3a2a1a0相加时溢出(b7、a7为符号标志),则()。A.b7与a7的“逻辑或”结果一定为1B.b7与a7的“逻辑与”结果一定为0C.b7与a7的“逻辑异或”结果一定为1D.b7与a7的“逻辑异或”结果一定为0

选项 A.b7与a7的“逻辑或”结果一定为1
B.b7与a7的“逻辑与”结果一定为0
C.b7与a7的“逻辑异或”结果一定为1
D.b7与a7的“逻辑异或”结果一定为0

答案 D

解析 补码:正数的补码表示与原码相同,即最高符号位为0,其余为数值位,而负数的补码是由其反码最低位加1的来。补码的一个好处就是不同符号位相加不需要通过减法来实现,而直接可以按照二进制加法法则进行,但同符号位的补码相加可能产生溢出,即结果超出了规定的数值范围,使两个正数相加变负数,两个负数相加变正数,例如:89+67=156,01011001+01000011=10011100=-100。显然结果是不对的。
转载请注明原文地址:https://tihaiku.com/congyezige/2431277.html

最新回复(0)