计算机组成原理基础孙德文,计算机组成原理基础-孙德文课后习题解答.doc

计算机组成基础

习题详解

(初稿)

孙德文

上海交通大学软件学院

2009.3

第1章 计算机系统概论

1.1 数字计算机和模拟计算机的区别?

解:电子数字计算机的特点是数据由离散量来表示,是对离散变量进行处理和运算的解算装置。

电子模拟计算机的特点是数据由连续量来表示,是对连续变量进行运算的解算装置。在电子模拟计算机中,变量为连续变化的直流电压、电流或电荷。

1.2 说明冯诺依曼计算机的设计思想?写出冯诺依曼计算机的主要组成部分?

解:冯诺依曼计算机的设计思想是:

提出了“存储程序”的概念,程序设计者按计算要求编制好程序,将程序和运行程序中所用的数据以二进制代码的形式存入计算机的存储器中,由计算机自动执行程序。使电子计算机有了通用性,只要能写出正确的指令,计算机执行时就无须人工干预。

冯诺依曼计算机的主要组成部分是:

运算器、控制器、存储器、输入设备和输出设备。其中运算器和控制器合称“中央处理机”(或称为CPU,Central Processing Unit),CPU与存储器(内存储器)合称为“主机”,而输入设备和输出设备合称为“外部设备”。

1.3 描述计算机的发展过程及应用范围?

解:电子数字计算机从1946年第一台ENIAC机至今可分为4代:

第一代—— 电子管计算机;

第二代——晶体管计算机

第三代——集成电路计算机

第四代——大规模和超大规模集成电路计算机

应用范围

1.4 计算机软件的组成?并举例说明。

解:计算机的主要应用领域包括:数值计算、数据处理、计算机控制、计算机辅助设计/计算机辅助制造和人工智能等。

1.5 说明计算机系统的层次结构及各层次结构的特点?

解:计算机系统的层次结构共分8级,从L0~L7,其中:

L0为硬联逻辑,实现微指令的控制时序,是计算机系统硬件的内核;

L1为微程序控制,根据机器指令配备一套微指令,给出微操作控制信号;

L2为机器语言级计算机,该级的机器语言就是该计算机的指令系统;

L3为操作系统,为用户提供一个操作环境;

L4为汇编语言级计算机,该级的机器语言是汇编语言,由相应级的计算机进行解释、执行;

L5为高级语言类计算机,该级的机器语言是各种高级语言,该级计算机基本上脱离了物理计算机,供程序员使用;

L6 为应用语言计算机,该级的机器语言是面向非计算机专业人员直接使用的应用语言;

L7为应用系统分析和设计,是系统总体分析级,用以建立数学模型和算法,确定系统配置。

第2章 运算基础----数值的机器级表示

2.1 写出下列十进制数的8位二进制补码表示

(1) 54 (2) 37

(3) 111 (4) 253

(5) 0.1 (6) 0.63

(7) 0.34 (8) 0.21

解:

(1) +54 = 00110110B (32+16+6)

(2) +37 = 00100101B (32+5)

(3) +111 = 01101111B (64+32+15)

(4) +253 =0 11111101B (255-2) 超过8位补码范围

(5) +0.1 = 0.0001101 (0.1 = 12.8/128 = 13/128 )

(6) +0.63 = 0.1010001B (0.63=80.6/128=81 /128)

(7) +0.34 = 0.0101100 (0.34 = 43.52/128 =44/ 128)

(8) +0.21 = 0.0011011 (0.21 = 26.88 / 128= 27 /128)

2.2 转换下列二进制数为十进制数

(1) 10111101 (2) 10001001

(3) 0.1011111 (4) 0.0011010

(5) 10011001.110011 (6) 111000111

解:

(1) 10111101 = 189 (255-64-2)

(2) 10001001 = 137 (128+9)

(3) 0.1011111 = 95 / 128 =0.7421875 ( (127-32)/ 128 )

(4) 0.0011010 = 13 / 64 = 0.203125

(5) 10011001 .110011 = 153 +51/64 = 153.796875 ( 153 = 128+16+9 ,

51/64 = (63-12)/64 )

(6) 111000111 = 455 (455 = 511-32-16-8)

2.3 写出下列带符号数的原码、反码、补码和移码表示(用8位二进制代码表示)

(1) +112 (2) 0.625

(3) –124 (4) –0.375

(5) +197 (6)+0.8125

(7) –6 (8) -0.3125

(9) —127 (10) —1

解:

(1) +112 = 127-15

[ +112 ]原 = 01110000B

[ +112 ]反 = 01110000B

[ +112 ]补 = 01110000B

[ +112 ]移 = 11110000B

(2) 0.625 = 0.1010000B

[ 0.625 ]原 =[ 0.625 ]反=[ 0.625 ]补 =0.1010000B

小数无移码

(3) –124 =-(127-3) =-1111100B

[-124 ]原 = 11111100B

[-124 ]反 = 10000011B

[-124 ]补 = 10000100B

[-124 ]移 = 10000100B

(4) –0.375 =-48/128 =-0.0110000B

[-0.375 ]原=1.0110000B

[-0.375 ]反=1.1001111B

[-0.375 ]补=1.1010000B

小数无移码

(5) +197

超过8位范围。无法表示。

(6) +0.8125 =104/128 =0.1101000B

[+0.8125]原=[+0.8125]反=[+0.8125]补= 0.1101000B

小数无移码

(7) –6

[-6 ]原 = 10000110B

[-6 ]反 = 11111001B

[-6 ]补 = 11111010B

[-6 ]移 = 01111010B

(8) -0.3125 = -40/128 =-0.0101000

[-0.3125 ]原=1. 0101000B

[-0.3125 ]反=1.1010111B

[-0.3125 ]补=1.1011000B

小数无移码

(9) —127 = -1111111

[—127]原 = 11111111B

[—127 ]反 = 10000000B

[—127 ]补 = 10000001B

[—127 ]移 = 00000001B

(10) —1

[—1]原 = 10000001B

[—1]反 = 11111110B

[—1 ]补 = 11111111B

[—1 ]移 = 01111111B

2.4 给出以下机器数,求其真值(用二进制和十进制数表示)

(1) [x]原=00100111 (2) [x]补=10101101.

(3) [x]补=01000110 (4) [x]原=10101101

(5) [x]移=01000110 (6) [x]移=11010011

解:

(1) X =+0100111B=+(32+7) =+39

(2) [x]补=10101101B [x]原=11010011B

X=-1010011B =-( 64+16+3)=-83

(3) X = +1000110B=64+6 =+70

(4) [X]原=10101101B

X= -0101101B =-(32+13) =-45

(5) [x]移=01000110

[x]补=11000110

X=-0111010=-58

(6) [x]移=11010011

[x]补=01010011

X=1010011=83

2.5 已知生成多项式为x4+x+1 ,有效信息为10101011,求CRC校验码。

解:

信息——数据字块M = 10101011(共8位)

除数代码为G = 10011 即生成多项式G(X)= x4+x+1

求循环冗余校验码

二进制除法过程如下:

10110110

10011 101010110000

10011

11001

10011

10101

10011

11000

10011

10110

10011

1010

此余数即所求之循环冗余码。

R = 1010

得循环冗余校验码CRC为101010111010

2.6 已知生成多项式为x4+x+1 ,有效信息为100101011,求CRC校验码。

解:

信息——数据字块M = 100101011(共9位)

除数代码为G = 10011 即生成多项式G(X)= x4+x+1

求循环冗余校验码

二进制除法过程如下:

100011001

10011 1001010110000

10011

11011

10011

10000

10011

11000

10011

1011

此余数即所求之循环冗余码。

R = 1011

得循环冗余校验码CRC为1001010111011

2.7 已知生成多项式为x4+x+1,接收到的CRC校验码为1001010111101,请检查有无出错

解:

循环冗余校验码CRC为1001010111101

除数为10011

进行CRC检查

100011001

10011 1001010111101

10011

11011

10011

10001

10011

10101

10011

110

R=110 有错

2.8 已知生成多项式为x4+x+1,接收到的CRC校验码为1001010111010,请检查有无出错

解:

循环冗余校验码CRC为1001010111010

除数为10011

进行CRC检查

100011001

10011 1001010111010

10011

11011

10011

10001

10011

10010

10011

1

R=1 有错

第3章 数值的机器运算

3.1 已知[x]补和[y] 补的值,用补.码加减法计算x+y和x-y(写出结果的二进制表示和十进制表示),并指出结果是否溢出以及溢出的类型(建议采用变形补码什算)。

(1) [x] 补=0.11011 , [y]补=0.00011

(2) [x] 补=0.10111 [y]补=1.00101

(3) [x] 补=1.01010 [y]补=1.10001

(4) [x] 补=1.10011 [y]补=0.11001

解: [y]补=0.00011

(1) [x]补=0.11011 ,

[-y]补=1.11101

[X+Y]补=[x]补+[y]补

= 00.11011

+ 00.00011

__________________

00.11110

X+Y= +15/16 =+0.1111B

[X-Y]补=[x]补+[-y]补

=00.11011

+11.11101

__________________

00.11000

X-Y= +12/16 =+3/4=+0.11B

检验

【 X= + 27/ 32

Y= +3/32

X+Y = +(27+3)/32 =+30/32=0.11110B

X-Y = (27-3)/32=+24/32=+3/4=0.11B 】

(2) [x]补=0.10111 , [y]补=1.00101

[Y]原=1.11011

[-y]补=0.11011

[X+Y]补=[x]补+[y]补

= 00.10111

+ 11.00101

__________________

11.11100

X+Y= -0.001B=-1/8

[X-Y]补=[x]补+[-y]补

= 00.10111

+00.11011

________________

01.10010 (上溢)

[X-Y]补=1.10010 (上溢)

【 修正:X-Y=-0.01110 = -7 / 16+2 = 25 / 16 】

检验

【 X= +23/ 32

Y= -27/32

X+Y = (23-27)/32 =-4/32=-1/8

X-Y = (23+27)/32=+50/32 =25/16 (上溢) 】

(3) [x]补=1.01010 , [y]补=1.10001

[-y]补=0.01111

[X+Y]补=[x]补+[y]补

= 11.01010

+ 11.10001

__________________

10.11011

X+Y=0.11011B=+27/32

[ 修正 27/32-2=27-64=-37/32 ]

[X-Y]补=[x]补+[-y]补

= 11.01010

+ 00.01111

________________

11.11001

X-Y=-0.00111B=-7/32

检验

【X= -22/ 32=-11/16

Y=-15/32

X+Y = (-15-22) /32 =-37/32 (下溢)

X-Y = (-22-(-15)) / 32 =- 7/32 】

(4) [x]补=1.10011 , [y]补=0.11001

[ X= -0.01101=-13/ 32

Y= +0.11001=25/32

X+Y = (-13+25)/32 =12/32=3/8

X-Y = (-13-25)/32=-38/32 = -19 / 16 (下溢) ]

[-y]补=1.00111

[X+Y]补=[x]补+[y]补

= 11.10011

+ 00.11001

__________________

00.01100

X+Y=0.01100B=3/8

[X-Y]补=[x]补+[-y]补

= 11.10011

+ 11.00111

________________

10.11010 (下溢)

[X-Y]补=0.11010 (下溢)

【 修正: X-Y = 13 / 16 – 2 = -19 / 16 】

检验

【 X= -0.01101=-13/ 32

Y= +0.11001=25/32

X+Y = (-13+25)/32 =12/32=3/8

X-Y = (-13-25)/32=-38/32 = -19 / 16 (下溢) 】

3.2 给出x和y的二进制值,用补码加减法计算x+y和x-y(写出结果的二进制表示和十进制表示),并指出结果是否溢出以及溢出的类型(建议采用变形补码什算)、

(1) x=0.10111 y=0.11011 (2) x=0.11101 y=0.10011

(3) x=0.11011 y=-0.1010 (4) x=-0.11111 y=0.11011

(5) x=-0.11011 y=0.1010 (6) x=-0.11010 y=-0.11001

(7) x=-1011101 y=+1101101 (8) x=+1110110 y=-1001101

(9) x=+1101110 y=+1010101 (10) x=-1111111 y=-1101101

解:

(1) X=0.10111 Y=0.11011

[X]补=0.10111

[Y]补=0.11011

[-Y]补=1.00101

[X+Y]补=[X]补+[Y]补

= 00.10111

+ 00.11011

_______________________

01.10010 (上溢)

X+Y 上溢

[X-Y]补=[X]补-[Y]补

= 00.10111

+ 11.00101

_________________________

11.11100

X-Y=-0.00100

=-1/8

检验

【X=23/32 Y=27/32

X+Y=50/32

[ 修正:X+Y=-0.0111 =- 7 / 16 +2 =25 / 16 ]

X-Y=-1/8】

(2) X=0.11101 Y=0.10011

[X]补=0.11101

[Y]补=0.10011

[-Y]补=1.01101

[X+Y]补=[X]补+[Y]补

= 00.11101

+ 00.10011

_______________________

01.10000 (上溢)

X+Y 上溢

[X-Y]补=[X]补-[Y]补

= 00.11101

+ 11.01101

_________________________

00.01010

X-Y=0.01010

=5/16

检验

【X=29/32 Y=19/32

X+Y=48/32 =3 / 2

[ 修正:X+Y = -0.1 = -1 / 2+2 =1.5 ]

X-Y=10/32=5 / 16】

(3) X=0.11011 Y=-0.1010

[X]补=0.11011

[Y]补=1.01100

[-Y]补=0.10100

[X+Y]补=[X]补+[Y]

= 00.11011

+ 11.01100

_______________________

00.00111

X+Y =7/32

[X-Y]补=[X]补-[Y]补

= 00.11011

+ 00.10100

_________________________

01.01111

X-Y=-0.10001=-17/32 (上溢)

[ 修正 -17/32+2=47/32 ]

检验

【X=27/32 Y=-20/32

X+Y=7/32

X-Y=47/32】

(4) X=-0.11111 Y=0.11011

[X]补=1.00001

[Y]补=0.11011

[-Y]补=1.00101

[X+Y]补=[X]补+[Y]补

= 11.00001

+ 00.11011

_______________________

11.11100

X+Y =-0.00100=-1/8

[X-Y]补=[X]补-[Y]补

= 11.00001

+ 11.00101

_________________________

10.00110 (下溢)

X-Y=0.00110=3/16 (下溢)

[ 修正 6/32-2=58/32 =29/16 ]

检验

【X=-31/32 Y=27/32

X+Y=-4/32 =-1/8

X-Y=58/32=29/16】

(5) X=-0.11011 Y=0.10100

[X]补=1.00101

[Y]补=0.10100

[-Y]补=1.01100

[X+Y]补=[X]补+[Y]补

= 11.00101

+ 00.10100

_______________________

11.11011

X+Y =-0.00111=-7/32

[X-Y]补=[X]补-[Y]补

= 11.00101

+ 11.01100

_________________________

10.10001 (下溢)

X-Y=17/32 (下溢)

[ 修正 17/32-2=-47/32 ]

检验

【X=-27/32 Y=20/32

X+Y=-7/32

X-Y=-47/32】

(6) X=-0.11010 Y=-0.11001

[X]补=1.00110

[Y]补=1.00111

[-Y]补=0.11001

[X+Y]补=[X]补+[Y]补

= 11.00110

+ 11.00111

_______________________

10.01101

X+Y =13/32 (下溢) [ 修正 13/32-2=-51/32 ]

[X-Y]补=[X]补-[Y]补

= 11.00110

+ 00.11001

_________________________

11.11111

X-Y=-0.00001

= -1/32

检验

【X=-26/32 Y=-25/32

X+Y=-51/32

X-Y=-1/32】

(7) X=-1011101 Y=+1101101

[X]补=10100011

[Y]补=01101101

[-Y]补=1.01100

[X+Y]补=[X]补+[Y]补

= 110100011

+ 001101101

_______________________

000010000

X+Y =00010000=16

[X-Y]补=[X]补-[Y]补

= 110100011

+ 110010011

_________________________

100110110 (下溢)

X-Y=54 (下溢)

[ 修正 54-256=-202 ]

检验

【X=-93 Y=109

X+Y=16

X-Y=-202】

(8) X=+1110110 Y=-1001101

[X]补=01110110

[Y]补=10110011

[-Y]补=01001101

[X+Y]补=[X]补+[Y]补

= 001110110

+ 110110011

_______________________

000101001

X+Y =41

[X-Y]补=[X]补-[Y]补

= 0011101101

+ 001001101

_________________________

011000011 (上溢)

X-Y=-61 (上溢)

[ 修正 -61+256=195 ]

检验

【X=118 Y=-77

X+Y=41

X-Y=195】

(9) X=+1101110 Y=+1010101

[X]补=01101110

[Y]补=01010101

[-Y]补=10101011

[X+Y]补=[X]补+[Y]补

= 001101110

+001010101

_______________________

011000011 (上溢)

X+Y =-0111101=-61 [ 修正 -61+256=195 ]

[X-Y]补=[X]补-[Y]补

= 001101110

+ 110101011

_________________________

000011001

X-Y=25

检验

【X=110 Y=85

X+Y=195

X-Y=25】

(10) X=-1111111 Y=-1101101

[X]补=10000001

[Y]补=10010011

[-Y]补=01101101

[X+Y]补=[X]补+[Y]补

= 110000001

+ 110010100

_______________________

100010100 (下溢)

X+Y =00010100=20 [ 修正 20-256=-236 ]

[X-Y]补=[X]补-[Y]补

= 110000001

+ 001101101

_________________________

111101110

检验

【X-Y=-0010010=-18

X=-127 Y=-109

X+Y=-236

X-Y=-18】

3.3 给出x和y的二进制值,试用原码一位乘法求XY,(写出结果的二进制表示和十

进制表示,要求写出运算过程),

(1)X=+0100,Y=-0011 (2)X=+0.0101,Y=-0. 1010,

(3)X = +1001,Y =-1101 (4)X=+0.1011,Y=-0.1101

(5)X=-1010,Y=+1011 (6) X=0.1001,Y=-0.0101

(7)X=-1010,Y=+1101 (8) X=-0.0110,Y=+0.0101

(9)X=+10101,Y=-10011 (10)X=-0.10111,Y=+0.10101

解:(1)X=+0100,Y=-0011

按乘法规则,符号位Zs = Xs Ys = 0 1 = 1;

绝对值相乘如下

0 0 0 0 0 0 1 1 部分积初值

0 1 0 0 Y4=1,加上被乘数|X|

0 1 0 0 0 0 1 1 第一次部分积

0 0 1 0 0 0 0 1 右移一位

0 1 0 0 Y3=1,加加上被乘数|X|

0 1 1 0 0 0 0 1 第二次部分积

0 0 1 1 0 0 0 0 右移一位

0 0 0 0 Y2=0,加0

0 0 1 1 0 0 0 0 第三次部分积

0 0 0 1 1 0 0 0 右移一位

0 0 0 0 Y1=0, 加0

0 0 0 1 1 0 0 0 第四次部分积

0 0 0 0 1 1 0 0 右移一位得乘积

得:[Z]原 = 1 0 0 0 0 1 1 0 0

Z = - 0 0 0 0 1 1 0 0 B = - 1`2

(2)X=+0.0101,Y=-0. 1010

按乘法规则,符号位Zs = Xs Ys = 0 1 = 1;

绝对值相乘如下

0 0 0 0 1 0 1 0 部分积初值

0 0 0 0 Y3=0,加0

0 0 0 0 1 0 1 0 第一次部分积

0 0 0 0 0 1 0 1 右移一位

0 1 0 1 Y2=1,加上被乘数|X|

0 1 0 1 0 1 0 1 第二次部分积

0 0 1 0 1 0 1 0 右移一位

0 0 0 0 Y3=0,加0

0 0 1 0 1 0 1 0 第三次部分积

0 0 0 1 0 1 0 1 右移一位

0 1 0 1 Y1=1,加上被乘数|X|

0 1 1 0 0 1 0 1 第四次部分积

0 0 1 1 0 0 1 0 右移一位得乘积

得:[Z]原 = 1. 0 0 1 1 0 0 1 0

Z = - 0. 0 0 1 1 0 0 1 0 B = - 50 / 256

(3)X = +1001,Y =-1101

按乘法规则,符号位Zs = Xs Ys = 0 1 = 1;

绝对值相乘如下

0 0 0 0 1 1 0 1 部分积初值

1 0 0 1 Y4=1,加上被乘数|X|

1 0 0 1 1 1 0 1 第一次部分积

0 1 0 0 1 1 1 0 右移一位

0 0 0 0 Y3=0,加0

0 1 0 0 1 1 1 0 第二次部分积

0 0 1 0 0 1 1 1 右移一位

1 0 0 1 Y4=1,加上被乘数|X|

1 0 1 1 0 1 1 1 第三次部分积

0 1 0 1 1 0 1 1 右移一位

1 0 0 1 Y4=1,加上被乘数|X|

1 1 1 0 1 0 1 1 第四次部分积

0 1 1 1 0 1 0 1 右移一位得乘积

得:[Z]原 = 1 0 1 1 1 0 1 0 1

Z = - 0 1 1 1 0 1 0 1 B = - 117

(4)X=+0.1011,Y=-0.1101

按乘法规则,符号位Zs = Xs Ys = 0 1 = 1;

绝对值相乘如下

0 0 0 0 1 1 0 1 部分积初值

1 0 1 1 Y4=1,加上被乘数|X|

1 0 1 1 1 1 0 1 第一次部分积

0 1 0 1 1 1 1 0 右移一位

0 0 0 0 Y3=0,加0

0 1 0 1 1 1 1 0 第二次部分积

0 0 1 0 1 1 1 1 右移一位

1 0 1 1 Y2=1,加上被乘数|X|

1 1 0 1 1 1 1 1 第三次部分积

0 1 1 0 1 1 1 1 右移一位

1 0 1 1 Y1=1,加上被乘数|X|

1 0 0 0 1 1 1 1 1 第四次部分积

1 0 0 0 1 1 1 1 右移一位得乘积

得:[Z]原 = 1.10001111

Z = - 0. 10001111 B = - 143

(5)X=-1010,Y=+1011

按乘法规则,符号位Zs = Xs Ys = 1 0 = 1;

绝对值相乘如下

0 0 0 0 1 0 1 1 部分积初值

1 0 1 0 Y4=1,加上被乘数|X|

1 0 1 0 1 0 1 1 第一次部分积

0 1 0 1 0 1 0 1 右移一位

1 0 1 0 Y4=1,加上被乘数|X|

1 1 1 1 0 1 0 1 第二次部分积

0 1 1 1 1 0 1 0 右移一位

0 0 0 0 Y4=0,加0

0 1 1 1 1 0 1 0 第三次部分积

0 0 1 1 1 1 0 1 右移一位

1 0 1 0 Y4=1,加上被乘数|X|

1 1 0 1 1 1 0 1 第四次部分积

0 1 1 0 1 1 1 0 右移一位得乘积

得:[Z]原 = 1 0 1 1 0 1 1 1 0

Z = - 0 1 1 0 1 1 1 0 B = - 110

(6) X=0.1001,Y=-0.0101

按乘法规则,符号位Zs = Xs Ys = 0 1 = 1;

绝对值相乘如下

0 0 0 0 0 1 0 1 部分积初值

1 0 0 1 Y4=1,加上被乘数|X|

1 0 0 1 0 1 0 1 第一次部分积

0 1 0 0 1 0 1 0 右移一位

0 0 0 0 Y3=0,加0

0 1 0 0 1 0 1 0 第二次部分积

0 0 1 0 0 1 0 1 右移一位

1 0 0 1 Y2=1,加上被乘数|X|

1 0 1 1 0 1 0 1 第三次部分积

0 1 0 1 1 0 1 0 右移一位

0 0 0 0 Y3=0,加0

0 1 0 1 1 0 1 0 第四次部分积

0 0 1 0 1 1 0 1 右移一位得乘积

得:[Z]原 = 1. 0 0 1 0 1 1 0 1

Z = -0 . 0 0 1 0 1 1 0 1 B = - 45 /256

(7)X=-1010,Y=+1101

按乘法规则,符号位Zs = Xs Ys = 1 0 = 1;

绝对值相乘如下

0 0 0 0 1 1 0 1 部分积初值

1 0 1 0 Y4=1,加上被乘数|X|

1 0 1 0 1 1 0 1 第一次部分积

0 1 0 1 0 1 1 0 右移一位

0 0 0 0 Y3=0,加0

0 1 0 1 0 1 1 0 第二次部分积

0 0 1 0 1 0 1 1 右移一位

1 0 1 0 Y4=1,加上被乘数|X|

1 1 0 0 1 0 1 1 第三次部分积

0 1 1 0 0 1 0 1 右移一位

1 0 1 0 Y4=1,加上被乘数|X|

1 0 0 0 0 0 1 0 1 第四次部分积

1 0 0 0 0 0 1 0 右移一位得乘积

得:[Z]原 = 1 1 0 0 0 0 0 1 0

Z = - 1 0 0 0 0 0 1 0 B = - 130

(8) X=-0.0110,Y=+0.0101

按乘法规则,符号位Zs = Xs Ys = 1 0 = 1;

绝对值相乘如下

0 0 0 0 0 1 0 1 部分积初值

0 1 1 0 Y4=1,加上被乘数|X|

0 1 1 0 0 1 0 1 第一次部分积

0 0 1 1 0 0 1 0 右移一位

0 0 0 0 Y3=0,加0

0 0 1 1 0 0 1 0 第二次部分积

0 0 0 1 1 0 0 1 右移一位

0 1 1 0 Y2=1,加上被乘数|X|

0 1 1 1 1 0 0 1 第三次部分积

0 0 1 1 1 1 0 0 右移一位

0 0 0 0 Y3=0,加0

0 0 1 1 1 1 0 0 第四次部分积

0 0 0 1 1 1 1 0 右移一位得乘积

得:[Z]原 = 1. 0 0 0 1 1 1 1 0

Z = -0. 0 0 0 1 1 1 1 0 B = - 30 / 256

(9)X=+10101,Y=-10011

按乘法规则,符号位Zs = Xs Ys = 0 1 = 1;

绝对值相乘如下

0 0 0 0 0 1 0 0 1 1 部分积初值

1 0 1 0 1 Y4=1,加上被乘数|X|

1 0 1 0 1 1 0 0 1 1

0 1 0 1 0 1 1 0 0 1 右移一位

1 0 1 0 1 Y4=1,加上被乘数|X|

1 1 1 1 1 1 1 0 0 1 第二次部分积

0 1 1 1 1 1 1 1 0 0 右移一位

0 0 0 0 0 Y4=0,加0

0 1 1 1 1 1 1 1 0 0 第三次部分积

0 0 1 1 1 1 1 1 1 0 右移一位

0 0 0 0 0 Y4=0,加0

0 0 1 1 1 1 1 1 1 0 第四次部分积

0 0 0 1 1 1 1 1 1 1 右移一位

1 0 1 0 1 Y4=1,加上被乘数|X|

1 1 0 0 0 1 1 1 1 1

0 1 1 0 0 0 1 1 1 1 右移一位得乘积

得:[Z]原 = 1 0 1 1 0 0 0 1 1 1 1

Z = - 0 1 1 0 0 0 1 1 1 1 = - 399

(10)X=-0.10111,Y=+0.10101 1 0 1 1 1

按乘法规则,符号位Zs = Xs Ys = 1 0 = 1;

绝对值相乘如下

0 0 0 0 0 1 0 1 0 1 部分积初值

1 0 1 1 1 Y4=1,加上被乘数|X|

1 0 1 1 1 1 0 1 0 1

0 1 0 1 1 1 1 0 1 0 右移一位

0 0 0 0 0 Y4=0,加0

0 1 0 1 1 1 1 0 1 0 第二次部分积

0 0 1 0 1 1 1 1 0 1 右移一位

1 0 1 1 1 Y4=1,加上被乘数|X|

1 1 1 0 0 1 1 1 0 1 第三次部分积

0 1 1 1 0 0 1 1 1 0 右移一位

0 0 0 0 0 Y4=0,加0

0 1 1 1 0 0 1 1 1 0 第四次部分积

0 0 1 1 1 0 0 1 1 1 右移一位

1 0 1 1 1 Y4=1,加上被乘数|X|

1 1 1 1 0 0 0 1 1 1

0 1 1 1 1 0 0 0 1 1 右移一位得乘积

得:[Z]原 = 1. 0 1 1 1 1 0 0 0 1 1

Z = - 0 . 0 1 1 1 1 0 0 0 1 1 B = - 483 / 1024

3.4 给出x和y的二进制值,试用补码一位乘法求XY,(写出结果的二进制表示和十

进制表示,要求写出运算过程),

(1)X=+0100,Y=-0011

展开阅读全文

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值