2第4章运算方法与运算器定点数的加减运算及实现4.1定点运算器的组成与结构定点数的乘法运算及实现4.2定点数除法运算及实现4.34.4浮点运算及运算器4.5浮点运算器举例4.6本章小结34.1定点数的加减运算及实现补码加减运算与运算器机器数的移位运算移码加减运算与判溢十进制加法运算一二三四4一、补码加减运算与运算器补码加减运算方法补码加减运算的溢出判断二补码加减运算器的实现三一51、补码加减运算方法补码的加减运算的公式是:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补特点:使用补码进行加减运算,符号位和数值位一样参加运算。补码的减法可以用加法来实现,任意两数之差的补码等于被减数的补码与减数相反数的补码之和。6求补运算:[Y]补→[-Y]补求补规则:将[Y]补包括符号位在内每一位取反,末位加1。若[Y]补=Y0,Y1……Yn,则:若若[Y][Y]补补=Y0.Y1……Yn=Y0.Y1……Yn,则:,则:1YYY[-Y]n10补1YYY[-Y]n1000.0补例:例:[X][X]补补=0.1101=0.1101,则:,则:[[--X]X]补补==??[Y][Y]补补=1.1101=1.1101,则:,则:[[--Y]Y]补补==??1.00111.00110.00110.00117补码加减运算举例例:已知X=+1011,Y=-0100,用补码计算X+Y和X-Y。写出补码:[X]补=0,1011[Y]补=1,1100[-Y]补=0,0100计算:0,10110,1011++1,1101,110000,01110,0111[X[X++Y]Y]补补==0,01110,01110,10110,1011++0,0100,010000,11110,1111[X[X--Y]Y]补补==0,11110,111182、补码加减运算的溢出判断当运算结果超出机器数的表示范围时,称为溢出。计算机必须具备检测运算结果是否发生溢出的能力,否则会得到错误的结果。对于加减运算,可能发生溢出的情况:同号(两数)相加,或者异号(两数)相减。确定发生溢出的情况:正数相加,且结果符号位为1;负数相加,且结果符号位为0;正数-负数,且结果符号位为1;负数-正数,且结果符号位为0;9常用的判溢方法(补码加减运算)(1)单符号位判溢方法2当最高有效位产生的进位和符号位产生的进位不同时,加减运算发生了溢出。V=C1⊕Cf(2)双符号位判溢方法X和Y采用双符号位补码参加运算,正数的双符号位为00,负数的双符号位为11;当运算结果的两位符号Sf1Sf2不同时(01或10),发生溢出。V=Sf1⊕Sf2=Xf⊕Yf⊕Cf⊕SfSf1Sf2=01,则正溢出;Sf1Sf2=10,则负溢出。10双符号位判溢方法举例例:用补码计算X+Y和X-Y(1)X=+1000,Y=+1001(2)X=-1000,Y=1001[X]补00,1000+[Y]补00,1001[X+Y]补01,0001+[-Y]补11,0111[X]补00,1000[X-Y]补11,1111Sf1Sf2=01,正溢出Sf1Sf2=11,无溢出[X]补11,1000+[Y]补00,1001[X+Y]补00,0001+[-Y]补11,0111[X]补11,1000[X-Y]补10,1111Sf1Sf2=00,无溢出Sf1Sf2=10,负溢出11二进制加法器由真值表可的全加器输出Fn和进位输出Cn+1的表达式为:化简可得:Fn=Xn⊕Yn⊕CnCn+1=XnYn+(Xn⊕Yn)CnXnYnCnFnCn+1000001010011100101110111001010011001011112一位全加器逻辑电路FnCnYnXnCn+1一位全加器逻辑框图FAFnCnYnXnCn+113四位二进制加法器由4个全加器串连构成串行进位加法器C1FA0F0C0Y0X0C2FA1F1Y1X1C3FA2F2Y2X2FA3F3Y3X3C414四位二进制并行进位加法器在4个全加器基础上进行改造,以便并行产生进位,构成并行进位加法器。FA3F3C3Y3X3C4FA2F2C2Y2X2FA1F1C1Y1X1FA0F0C0Y0X0四位并行进位电路X3~X0Y3~Y015四位并行进位加法器X3~X0Y3~Y0F3~F0C0四位二进制并行进位加法器可以完成加法16补码加减法根据算术运算规则:[a-b]补=[a]补+[-b]补[-b]的补码为:将[b]补的各位求反,并加1。由此,我们可以用加法器实现减法。加法器17将加法和减法组合给定控制命令C=0,则ALU完成加法a+b;C=1,完成减法a-b。可以用选择器实现如下:18补码加减运算器的实现核心部件:一个普通的二进制并行加法器。A:累加器,存放[X]补;B:寄存器,存放[Y]补;取反电路:=0时,补码加法器,将B寄存器直接送入并行加法器;=1时,补码减法器,将B送入并行加法器,同时,并行加法器的最低位产生进位,即B取反加1,此时并行加法器的运算相当于[A]补加[...