您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 计算机组成原理第2章答案
第2章综合应用题参考答案1.在CRC校验中。已知生成多项式是G(x)=x4+x3+1。要求写出信息1011001的CRC校验码。解:生成多项式G(x)=11001,为5位,校验余数取4位,按模2除法计算过程如下:1101010110011011001000011001111101100101111011001011100110011010余数R(x)=1010CRC校验码=101100110102.双方采用CRC循环校验码进行通信,已知生成多项式为x4+x3+x+1,接收到码字为10111010011。判断该信息有无错误。解:依题意,生成多项式G(x)=11011,如果信息正确,则模2除法余数应为01100101110111011101001111011110001101111100110111111111011100结果余数R(x)=100不为零所以结果有错。3.简述算术移位与逻辑移位的区别算术移位,符号位保持不变,右移用符号位填充,左移用0填充逻辑移位,不考虑符号位,左右移位,空出位都用0填充4.已知机器字长n=8位,X=-44,Y=-53,按补码计算X-Y=?解:[X]补=11010100,[Y]补=11001011,[-Y]补=00110101[X]补11010100[-Y]补+)0011010100001001[X-Y]补=[X]补+[-Y]补=00001001,真值X-Y=00001001=+0001001=+95.设机器字长为8位(含1位符号位)设A=9/64,B=-13/32,计算[A±B]补,并还原成真值。解:A=9/16=1001/26=0.0010010B=-13/32=1101/25=-0.0110100[A]补=0.0010010[B]补=1.1001100[-B]补=0.0110100[A]补0.0010010[B]补+)1.10011001.1011110[A+B]补=1.1011110真值A+B=-0.0100010=-17/64[A]补0.0010010[-B]补+)0.01101000.1000110[A-B]补=0.1000110真值A-B=0.1000110=35/646.X=-0.1110,Y=-0.1101,采用原码一位乘法运算求[Z]原=[X×Y]原=?解:[X]原=1.1110[Y]原=1.1101符号单独处理:积Z的符号位Zs=11=0被乘数、乘数都取绝对值:即[|X|]=00.1110[|Y|]]原=0.1101部分积单元清000.00001101+X00.111000.1110右移1位00.011101101+000.000000.0111右移1位00.001110110+X00.111001.0001右移1位00.100011011+X00.111001.0110右移1位00.101101101积的绝对值|Z|=0.10110110[Z]原=Zs.10110110=0.101101107.若X=-0.1101,Y=-0.1011,用布斯算法求[X.Y]补=?解:对于Both补码乘法,符号参与运算,被乘数采用双符号位,乘数采用单符号,在乘数最末增加一个0,每次看最低两位(式中画底线的数字):相同(00,或11)则加0,若为10,则加[-X]补,若为01,则加[X]补[X]补=1.0011[-X]补=0.1101[Y]补=1.010100.0000101010+[-X]补00.110100.1101右移1位00.0110110101+[X]补11.001111.1001右移1位11.1100111010+[-X]补00.110100.1001右移1位00.0100111101+[X]补11.001111.0111右移1位11.1011111110+[-X]补00.110100.10001111最后一步不移位积的补码[Z]补=0.10001111真值Z=0.100011118.设X=-15,Y=-13,用原码阵列乘法器求乘积Z=X×Y=?并用十进制乘法验证。解:[X]原=11111;[Y]原=11101积符号单独处理Zs=11=0数值部分的阵列乘法(和手工乘法相似)11111101111100001111111111000011[Z]原=Zs11000011=011000011真值Z=X×Y=11000011=1959.若X=-0.10110,Y=0.11111,利用原码不恢复余数法(加减交替法)求Q=X/Y的商及余数.解:原码除法,被除数、除数都取绝对值,符号单独处理。注意:这里由于要做减除数Y运算,即加[-除数]补,所以采用补码,并不是补码除法,仍然是原码除法!商的位数取和除数相同(这里为6位:小数点后数值5位+小数点前的0)首先求出:[X]原=1.10110,[Y]原=0.11111,故商的符号单独处理QS=10=1为计算减除数取[|Y|]补=0.11111,[-|Y|]补=1.00001[|X|]补=0.10110被除数商00.10110000000(小数点后数值5位+小数点前的0=6位)+[-|Y|]补11.0000111.10111000000余数为负商上0左移一位11.01110000000余数和商左移一位[|Y|]补+)00.1111100.01101000001余数为正商上1左移一位00.11010000010余数和商左移一位[-|Y|]补+)11.0000111.11011000010余数为负商上0左移一位11.10110000100余数和商左移一位[|Y|]补+)00.1111100.10101000101余数为正商上1左移一位01.01010001010余数和商左移一位[-|Y|]补+)11.0000100.01011001011余数为正商上1左移一位00.10110010100余数和商左移一位[-|Y|]补+)11.0000111.10111010100余数为负商上0注意:若原码除法结果余数为负说明不够减,商上0,应该恢复余数(这里是正的00.10110,而不是负的11.10111)并且由于余数每次左移都扩大2倍,故实际余数要乘2-n,这里n是左移次数。商[Q]原=QS.10100=1.10100余数=0.10110×2-5真值Q=X/Y=-0.1010010.若X=0.1000,Y=-0.1010,试利用补码不恢复余数法求商及余数解:对于补码一位除法,首先取余数R=被除数[X]补,看余数R与除数[Y]补,符号相异+[Y]补,商上0,符号相同+[-Y]补,商上1,结果末尾恒置1,余数和除数Y取双符号进行运算。[X]补=00.1000,[Y]补=11.0110,[-Y]补=00.1010被除数(余数)商(数值4位+1符号位=5位)00.100000000[X]补与[Y]补异号,+[Y]补+[Y]补11.011011.111000001余数与Y同号商上1左移一位11.110000010余数和商左移一位[-|Y|]补+)00.101000.011000010余数与Y异号商上0左移一位00.110000100余数和商左移一位[|Y|]补+)11.011000.001000100余数与Y异号商上0左移一位00.010001000余数和商左移一位[|Y|]补+)11.011011.101001001余数与Y同号商上1左移一位11.010010010余数和商左移一位[-Y]补+)00.101010011末尾恒置111.1110[Q]补=[X/Y]补=1.0011余数R=11.1110补×2-411.将十进制数+76.75存入某微机中,写出IEEE754标准的单精度浮点数格式。解:先转成二进制数:X=+76.75=(1001100.11)=+1.00110011×26=+1.00110011×2110按754格式:阶码E=127+6=133=1000010123位尾数:0011001100000000000000032位浮点数:(01000010100110011000000000000000)=42998000H12.将内存754标准的单精度浮点数C2308000H转换成真值。解:机内浮点数格式:11000010001100001000000000000000真值e=E-127=10000100-01111111=101=5尾数M=-1.01100001符号S=1真值=-1.01100001×25=-101100.001=-2C.2H=-44.12513.设两浮点数的阶码为5位(含符号两位),用补码表示,尾数为8位(含符号两位),用补码表示。X=0.110101×2-010,Y=-0.101010×2-001,按机器浮点数步骤计算X±Y解:(1)计算X+YX的阶码[Ex]补=11110X的尾数[Mx]补=00.110101Y的阶码[Ey]补=11111Y的尾数[My]补=11.010110[-Ey]补=00001[X]浮=11110,00.110101[Y]浮=11111,11.010110(1)对接,求阶差:[Ex-Ey]补=[Ex]补+[-Ey]补=11110+00001=11111(值为-1)0向Y对接,将X的阶码+1,尾数右移一位(移出采用0舍1入)[X]浮=11111,00.011011(2)尾数求和:[Mx+My]补=00.011011+11.010110=11.110001(3)尾数规格化处理左移两位,阶码-2,得[X+Y]浮=11101,11.000100(4)阶码双符号位相同,没有溢出(5)还原成真值为:X+Y=2-3×-0.111100(2)计算X-YX的阶码[Ex]补=11110X的尾数[Mx]补=00.110101Y的阶码[Ey]补=11111Y的尾数[My]补=11.010110[-Ey]补=00001[X]浮=11110,00.110101[Y]浮=11111,11.010110(1)对接,求阶差:[Ex-Ey]补=[Ex]补+[-Ey]补=11110+00001=11111(值为-1)0向Y对接,将X的阶码+1,尾数右移一位(移出采用0舍1入)[X]浮=11111,00.011011(2)尾数求差:[Mx-My]补=[Mx]补+[-My]补=00.011011+00.101010=01.000101(3)尾数规格化处理右移一位,阶码+1,得[X+Y]浮=00000,00.100011(4)阶码双符号位相同,没有溢出(5)还原成真值为:X+Y=2000×0.10001114.已知十进制数X=125,Y=-18.125,按机器浮点运算规则计算[X-Y]浮,结果用二进制真值表示,机器字长自定。解:X=125=1111101=2111×0.11111010Y=-18.125=10010.001=2101×(-0.10010001000000)根据阶码与尾数的有效位数,尾数用16位含2个符号,阶码用六位含2个符号位X的阶码[Ex]补=000111X的尾数[Mx]补=00.11111010000000Y的阶码[Ey]补=000101Y的尾数[My]补=11.01101111000000[-My]补=00.10010001000000[-Ey]补=11011[X]浮=000111,00.11111010[Y]浮=000101,11.01101111(1)对接,求阶差:[Ex-Ey]补=[Ex]补+[-Ey]补=00111+11011=00010(值为2)0向X对接,将Y的阶码+2,尾数右移2位(移出采用0舍1入)[-My]=00.00100100010000(2)尾数求差:[Mx-My]补=[Mx]补+[-My]补=00.11111010000000+00.00100100010000=01.00011110010000(3)尾数规格化处理右移一位,阶码+1,得[X+Y]浮=001000,00.100011110010000(4)阶码双符号位相同,没有溢出(5)还原成真值为:X+Y=21000×0.10001111001
本文标题:计算机组成原理第2章答案
链接地址:https://www.777doc.com/doc-2101079 .html