《计算机组成原理》课后题答案_清华大学出版_秦磊华_吴非·· 下载本文

所以 P1=1,P2=1 P3=0 P4=1 海明码为:110011011110

指错位G1:1,3,5,7,9,11 G2:2,3,6,7,10,11 G3:4,5,6,7,12 G4:8,9,10,11,12 G1=0,G2=0,G3=0,G4=0 图略。

2、18 设要采用CRC编码传送得数据信息x=1001,当生成多项式为G(x)=1101时,请写出它得循环校验码.若接收方收到得数据信息x’=1101,说明如何定位错误并纠正错误。

解:作模二除法:

所以循环码为:1001011。

若接收到得数据信息x'=1101,,所以就是第2位出错,将第2位得1改为0即可.

第三章 运算方法与运算器 习 题 三

3、1解释下列名词

变形形补码:即用两个二进制位来表示数据得符号位,其余与补码相同。 溢出:运算结果超出数据类型所能表示数据范围得现象称为溢出。

阵列乘法:采用类似手工乘法运算得方法,用大量与门产生手工乘法中得各乘积项,同时将大量一位全加器按照手工乘法算式中需要进行加运算得各相关项得排列方式组成加法器阵列.

恢复余数除法:比较被除数(余数)与除数得大小就是用减法实现得。对原码除法而言,由于操作数以绝对值得形式参与运算,因此,相减结果为正(余数得符号位为0)说明够减,商上1;相减结果为负(余数得符号位为1)说明不够减,商上0。

由于除法通过减法实现,当商上1时,可将比较数据大小时得减法操作与除法操作中得减法操作合并,即商上1后继续后面得除法操作。商上0时表明不够减,但因比较操作时已经实施了一次减法,因此,需要对执行比较操作后得结果加上除数,既将余数还原成比较操作前得数值,这种方法就称为恢复余数法。 不恢复余数除法:又称加减交替法,就是对恢复余数法得改进.不恢复余数法得特点就是不够减时不再恢复余数,而根据余数得符号作相应处理就可继续往下运算,因此运算步数固定,控制简单,提高了运算速度。

阵列除法:类似于阵列乘法器得思想,为了加快除法得执行速度,也可以采用阵列除法器来实现除法。为简化运算及阵列除法器得结构,对参加运算得数据进行适当得处理,使其以正数得形式参加运算。

行波进位:多位进位之间存在高位进位得产生依赖低位进位得一种进位方式。 并行进位:高、低进位之间不存在具有依存关系,而就是同时计算得进位方式。

算术移位:分为算术左移与算术右移。其中算数左移n位相当于乘上2n,执行方法就是把原来得数中每一位都向左移动n个位置,左面移出得高位丢弃不要,右面低位空出得位置上全部补0,当符号位发生改变时表明发生了溢出。算术右移时,符号位保持不变,其余各位依次右移,最右边一位移出,将符号位拷贝到左边空出得位,一次移位相当于除2。

逻辑移位:逻辑左移n位得执行方法,就是把原来得数中每一位都向左移动n个位置,左面移出得高位丢弃不要,右面低位空出得位置上全部补\0\。 逻辑右移n位得执行方法就是把原来数中得每一位都向右移动n个位置,右面移出得低位丢弃不要,左面高位空出得位置上全部补0。

对阶:使阶码相等得过程,对阶得时一般采取小得阶码向大阶码瞧齐得方式。

规格化:就就是使浮点数得运算结果中,将尾数从非规格化数变成规格化数得过程。根据尾数形式得不同,规格化可分为左移规格化与右移规格化。 3、2回答下列问题:

1)为什么采用并行进位能提高加法器得运算速度?

答:由于并行进位电路能很快产生各位得进位信号,使得加法器得速度大大提高。 2)如何判断浮点数运算结果就是否发生溢出? 答:由于溢出与数据得表示范围有关,而浮点数得阶码影响到其数据表示得范围,因此,浮点数得溢出就是通过接码得就是否溢出为判断标志。对于采用双符号位得阶码而言,当双符号位不同时表示浮点数发生溢出,否则则未发生溢出。

3)如何判断浮点数运算结果就是否为规格化数?如果不就是规格化数,如何进行规格化?

答:当尾数采用补码表示时,若运算结果不就是11、0××…×或00、1××…×得形式时,结果就不就是规格化数。则应进行相应得规格化处理:

?当尾数符号为01或10时,需要向右规格化,且只需将尾数右移一位,同时将结果得阶码值加1.

?当尾数运算结果为11、1××…×或00、0××…×时需要左移规格化,而且左移次数不固定,与运算结果得形式有关。

左规得方法就是尾数连同符号位一起左移位、与得阶码减1,直到尾数部分出现11、0或00、1得形式为止。

4)为什么阵列除法器中能用CAS得进位/借位控制端作为上商得控制信号?

答:阵列除法器利用不恢复余数得除法,当商上1得时候,会产生进位,当商上0时,不产生进位,进位信号与上商信号就是相同得,所以可以用CAS得进位/借位控制作为上商得控制信号。

5)移位运算与乘法及除法运算有何关系? 答:移位运算就是乘除法中得基本运算。

3、3 已知x与y,用变形补码计算x+y,并判断结果就是否溢出。 (1) x=0、11010,y=0、101110 (2) x=0、11101,y=-0、10100

(3) x=-0、10111,y=-0、11000 解:(1)[x+y]补=01、100010,溢出。 (2)[x+y]补=00、01001,未溢出。 (3)[x+y]补=10、10001,溢出.

3、4 已知x与y,用变形补码计算x—y,并判断结果就是否溢出. (1) x=0、11011,y=0、11101 (2) x=0、10111,y=0、11110

(3) x=-0、11111,y=—0、11001 解:(1)[x-y]补=11、11110,未溢出。 (2)[x—y]补=11、11001,未溢出. (1)[x—y]补=11、11001,未溢出。 3、5 设移码用6位表示(包含2位符号位),求[x ? y]移 (1)x = -6 , y = -3 (2)x=7 , y =11

(3)x=-3 , y =-12

解:(1)[x]移=001010,[y]移= 001101 [-y]移=110011 [Y]补= 111101 [-Y]补= 000011

[X]移 + [y]移=010111,

[X]移 + [Y]补= 001010+111101 =000111

根据移码加法公式[x + y]移=[X]移 + [Y]补= 000111

根据移码加法公式及溢出判断规则,双符号位为00,结果为负,未溢出。 根据移码得减法公式:

[x—y]移 = [x]移 + [—y]补 = 001010 + 000011 = 001101

根据移码溢出判断规则,双符号位为00,结果为负,未溢出。 (2)[x]移=110111, [y]补= 001011 [-y]补=110101

根据移码加法公式[x + y]移=[X]移 + [Y]补= 010111+ 001011 = 100010

(根据教材中说明得当以译码与补码两种数据表示进行运算时,要将移码第一符号位表示为0)

根据移码溢出判断规则,双符号位为10,结果为正,且发生溢出。 根据移码得减法公式:

[x—y]移 = [x]移 + [-y]补

= 010111+ 110101 = 001100

根据移码溢出判断规则,双符号位为00,结果为负,未溢出. (3)略,请参照本题前两小题得思路与方法求解即可 3、6用原码一位乘法计算x×y=? (1) x=—0、11111,y=0、11101 (2) x=-0、11010,y=-0、01011

解:(1)

? ?? 部分积 乘数(y) 判断位 说明

00、00000 yf、11101 P0=0 +00、11111

00、11111

→00、01111 1 yf、1110 右移一位,得P1

+00、00000

00、01111

→00、00111 11 yf、111 右移一位,得P2

+00、11111

01、00110

→00、10011 011 yf、11 右移一位,得P3

+00、11111

01、10010?

→00、11001 0011 y、1

右移一位,得P4

+00、11111

01、11000 ?

→00、11100 ? 00011 yf 右移一位,得P5=|x|·|y|

由于 Pf=xfyf=01=1

所以 x·y = ?0、1110000011

(2) ?????部分积 ?乘数(y) 判断位 说明

00、00000 yf、 01011 P0=0 +00、11010

00、11010 →00、01101 0 yf、0101 右移一位,得P1

+00、11010

01、00111 →00、10011 10 yf、010 右移一位,得P2

+00、00000

00、10011

→00、01001 110 yf、01 右移一位,得P3

+00、11010

01、00011?

→00、10001 1110 y、0 ??右移一位,

得P4

? ? +00、00000

00、10001?

→00、01000 ? 11110 yf 右移一位,得P5=|x|·|y|

由于 Pf=xfyf=11=0

所以 x·y = 0、0100011110 ?3、7用补码一位乘法计算x×y=?

(1) x=0、10110,y=-0、00011 (2) x=-0、011010,y=-0、011101 解:(1)

[x]补=0、10110, [-x]补=1、01010, [y]补=1、11101

部分积 乘数 ynyn+1 说明 ??

00、00000 1、111010 yn+1=0

+11、01010 yn+1yn=01,加

[—x]补

11、01010

→ 11、10101 0 1、11101 右移一位,得P1

? +00、10110 yn+1yn=10,

加[x]补

00、01011 →00、00101 10 1、1110 右移一位,得P2

?? +11、01010 yn+1yn=01,加[—x]补

右移一位,得P3

+1yn=11,加0

P4

yn+1yn=11,加0

所以 11、01111

→11、10111 110 1、111 +00、00000 yn 11?、10111

?? →11、11011 1110 1、11 右移一位,得

+00、00000 11、11011 ? ?

→11、11101 11110 1 ?、1 右移一位,得P5

+00、00000 ??? yn+1yn=11,加0 11、11101 11110 最后一步数据不

移位

[x·y]补=1、1110111110