← vivo提前批芯片设计岗(20.06.07)

推荐答案 测试一下

X和Y 均为补码表示的二进制,其中X=10010010B,Y=10001011B,下列选项中X+Y正确的是

A 110011101B B 011100011B C 111100010B D 100011101B
单选题 中等 笔试真题单选

参考答案

我们分析题目:X和Y均为补码表示的二进制,X=10010010B,Y=10001011B,求X+Y。注意补码加法时,符号位也参与运算,结果也是补码。先计算二进制加法:10010010 + 10001011 = 1 00011101?注意进位。逐位加:从最低位开始:0+1=1,1+1=0进位1,0+0+进位1=1,1+0=1,0+1=1,0+0=0,0+0=0,1+1=0进位1。得到结果:100011101(9位)。但注意补码加法结果可能溢出,需要判断。两个负数相加(因为符号位为1)得到负数,结果应为负数。9位结果最高位为1,表示负数,但实际正确的补码结果应该是8位?题目选项中都是9位二进制,所以可能结果就是9位,但需要判断是否溢出。通常补码加法,如果两个负数相加得到正数,则溢出;这里最高位进位1,但次高位也有进位?检查:X和Y都是8位,相加得到9位,但若只考虑8位结果,则忽略进位,但题目选项都是9位,所以直接看9位结果。具体计算:X=10010010,Y=10001011,相加: 10010010 + 10001011 = 100011101(首位进位1,得到9位)。但注意,在补码中,如果两个负数相加,结果应为负数,而100011101的最高位是1,是负数,所以看起来没问题。但我们要验证数值:X的十进制:补码负数,先取反加1得原码:X原码=11101110?实际上是10010010,符号位1,数值位0010010,取反得1101101,加1得1101110,即-110?等一下:正确转换:补码转原码:符号位不变,其余取反加1。X=10010010,数值位0010010,取反1101101,加1得1101110,即-1101110B = -110?实际十进制:1101110B=110?64+32+0+8+4+2+0=110,所以X=-110。Y=10001011,数值位0001011,取反1110100,加1得1110101,即-1110101B = -117?64+32+16+0+4+0+1=117,所以Y=-117。X+Y=-227。-227的补码(9位)?9位补码范围-256~255,符号位1,数值位227。227的二进制11100011(8位),所以9位补码为1 11100011?但实际我们计算得到100011101,即1 00011101,这是227?00011101=29,所以结果是-29?显然不对。注意:9位补码中,数值位是后8位,100011101=1 00011101,数值位00011101=29,所以是-29。但-110+(-117)=-227,不是-29。说明我们加法有误?重新仔细计算二进制加法: X=1 0 0 1 0 0 1 0 Y=1 0 0 0 1 0 1 1 对齐: 1 0 0 1 0 0 1 0 + 1 0 0 0 1 0 1 1 ------------------- 从右向左: bit0: 0+1=1,进位0 bit1: 1+1=0,进位1 bit2: 0+0+进位1=1,进位0 bit3: 0+1=1,进位0?注意:bit3是X的第4位(从0开始)?实际上我们需要列出位置: 位序号(从低位0开始): X: 位7=1,位6=0,位5=0,位4=1,位3=0,位2=0,位1=1,位0=0 Y: 位7=1,位6=0,位5=0,位4=0,位3=1,位2=0,位1=1,位0=1 加法: 位0: 0+1=1,进位c0=0 位1: 1+1=0,进位c1=1 位2: 0+0+c1=1,进位c2=0 位3: 0+1=1,进位c3=0 位4: 1+0=1,进位c4=0 位5: 0+0=0,进位c5=0 位6: 0+0=0,进位c6=0 位7: 1+1=0,进位c7=1 所以得到结果:c7=1, 位7=0,位6=0,位5=0,位4=1,位3=1,位2=1,位1=0,位0=1?等一下,位3的结果是1吗?位3:0+1=1,正确。位2:0+0+1=1。位1:0进位1得到0。位0:1。所以结果二进制(从高位到低位):c7(1) + 位7(0) + 位6(0) + 位5(0) + 位4(1) + 位3(1) + 位2(1) + 位1(0) + 位0(1) = 1 0001 1101?不对,应该是1 0011 101?我们再排一下:位7到0:0,0,0,1,1,1,0,1?位4=1,位3=1,位2=1,位1=0,位0=1,所以位7-0 = 0 0 0 1 1 1 0 1?但位7是0,位6是0,位5是0,位4是1,位3是1,位2是1,位1是0,位0是1,即二进制000111

涉及知识点

  • IC 基础
  • 数字电路
  • 设计与验证
← 上一题
登录后反馈错题
下一题 →