题目
已知X=86,Y=−53,试用补码加减法分别求X+Y和X−Y,并采用双符号位法判断结果是否溢出。(设机器字长为8位)
已知X=86,Y=−53,试用补码加减法分别求X+Y和X−Y,并采用双符号位法判断结果是否溢出。(设机器字长为8位)
题目解答
答案
解:X=86=+1010110B,Y=−53=−110101B[X]原=00 1010110,[Y]原=11 0110101[X]补=00 1010110,[Y]补=11 1001011,[−Y]补=00 0110101[X+Y]补=[X]补+[Y]补=00 1010110+11 1001011=00 0100001 (mod 29)可见,结果的两个符号位一致,故X+Y没有溢出。X+Y=+100001B=33[X−Y]补=[X]补+[−Y]补=00 1010110+00 0110101=01 0001011可见,结果的两个符号位不一致,故X−Y发生溢出。
解析
步骤 1:确定X和Y的二进制表示
X=86,Y=−53,将它们转换为二进制表示。
步骤 2:计算X和Y的补码
根据二进制表示,计算X和Y的补码。
步骤 3:计算X+Y和X−Y的补码
使用补码加减法计算X+Y和X−Y的补码。
步骤 4:判断结果是否溢出
采用双符号位法判断X+Y和X−Y的结果是否溢出。
X=86,Y=−53,将它们转换为二进制表示。
步骤 2:计算X和Y的补码
根据二进制表示,计算X和Y的补码。
步骤 3:计算X+Y和X−Y的补码
使用补码加减法计算X+Y和X−Y的补码。
步骤 4:判断结果是否溢出
采用双符号位法判断X+Y和X−Y的结果是否溢出。