文档库 最新最全的文档下载
当前位置:文档库 › exercise2

exercise2

exercise2
exercise2

第二章 运算方法和运算器

1.写出下列各数的原码、反码、补码表示(用8位二进制数),其中MSB 是最高位(又是符号位),LSB 是最高位。如果是小数,小数点在MSB 之后;如果是整数,小数点在LSB 之后。

(1) -35/64 (2)23/128 (3) –127 (4)用小数表示-1 (5)用整数表示-1 解:(1)-35/64 = -0.100011

原码1.1000110 反码1.0111001 补码1.0111010

(2)23/128= 0.0010111

原码0.0010111 反码0.0010111 补码0.0010111 (3) –127=1111111

原码11111111 反码10000000 补码10000001 (4) 用小数表示-1 补码1.0000000 (5) 用整数表示-1

原码10000001 反码11111110 补码111111111

2. 设[x]补=a 0. a 1 a 2 …a 6 其中a i 取0或1,若要x>-0.5,求a 0,a 1 , a 2 , … , a 6 的取值。

解:[x]补 = a 0. a 1a 2…a 6 解法一、

(1) 若a 0 = 0, 则x > 0, 也满足x > -0.5

此时a 1→a 6可任意

(2) 若a 0 = 1, 则x <= 0, 要满足x > -0.5, 需a 1 = 1

即a 0 = 1, a 1 = 1, a 2→a 6有一个不为0

解法二、

-0.5 = -0.1(2) = -0.100000 = 1, 100000 (1) 若x >= 0, 则a0 = 0, a 1→a 6任意即可

[x]补 = x = a 0. a 1a 2…a 6 (2) 若x < 0, 则x > -0.5

只需-x < 0.5, -x > 0

[x]补 = -x, [0.5]补 = 01000000 即[-x]补 < 01000000

010000001**6210<+?a a a a 00111111**6210

6210>?a a a a 即a 0a 1 = 11, a 2→a 6不全为0或至少有一个为1(但不是“其余取0”)

3.有一个字长为32位的浮点数,符号位1位,阶码8位,用移码表示,尾数23位,用补码表示;基数为2。请写出:(1)最大数的二进制表示;(2)最小数的二进制表示;(3)规格化数所能表示数的范围。

解:用IEEE754格式(E的取值范围:1~254,留出全0和全1分别表示0和无穷大)

0 11111110 11111111111111111111111即 2127(2-2-23)

(2) 最小数的二进制表示:

1 11111110 11111111111111111111111即 - 2127(2-2-23)

(3) 规格化数所能表示数的范围:

最小的正数:0 00000001 00000000000000000000001 即2-126(1+2-23)

绝对最小的负数:

1 00000001 00000000000000000000001 即-2-126(1+2-23)

所以范围是: -2127(2-2-23)至-2-126(1+2-23) ,2-126(1+2-23)至2127(2-2-23)

4.将下列十进制数表示成IEEE754标准的32位浮点规格化数。

(1) 27/64 (2) – 27/64

解:27/64=0.011011=1.1011*2-2

(1) 0 01111101 10110000000000000000000

(2) 1 01111101 10110000000000000000000

5.已知x和y,用变形补码计算x+y,同时指出结果是否溢出。

(1)x=0.11011 y=0.00011

(2)x=0.11011 y=-0.10101

(3)x=-0.10110 y=-0.00001

解:(1)

x+y = 0.11110

无溢出

x+y = 0.00110

无溢出

(3)x = -0.10110

y = -0.00001

x+y = -0.10111

无溢出

6.已知x和y,用变形补码计算x-y,同时指出运算结果是否溢出。(1)x=0.11011 y=-0.11111

(2)x=0.10111 y=0.11011

(3)x=0.11011 y=-0.10011

解:(1)x = 0.11011

溢出

(2)x = 0.10111

x-y = -0.00100

无溢出

(3)x = 0.11011

7.用原码阵列乘法器、补码阵列乘法器分别计算x*y。

(1)x = 0.11011 y = - 0.11111

(2)x = -0.11111 y = - 0.11011

解:(1)原码阵列

x = 0.11011, y = -0.11111

符号位: x

0⊕y

= 0⊕1 = 1

[x]

原 = 11011, [y]

= 11111

[x*y]

= 1, 11 0100 0101

直接补码阵列

[x]补 = (0)11011, [y]补 = (1)00001

带求补器的补码阵列

[x]补 = 0 11011, [y]补 = 1 00001 乘积符号位单独运算0⊕1=1

尾数部分算前求补输出│X │=11011,│y │=11111

X ×Y =

(2) 原码阵列

x = -0.11111, y = -0.11011 符号位: x 0⊕y 0 = 1⊕1 = 0 [x]补 = 11111, [y]补 = 11011

[x*y]补 = 0,11010,00101 直接补码阵列

[x]补 = (1)00001, [y]补 = (1)00101

[x*y]补

= 0,11010,00101

带求补器的补码阵列

[x]补 = 1 00001, [y]补 = 1 00101 乘积符号位单独运算1⊕1=0

尾数部分算前求补输出│X │=11111,│y │=11011

X ×Y =0.1101000101

8.用原码阵列除法器计算x ÷y 。 (1)x = 0.11000 y = - 0.11111 (2)x = -0.01011 y = - 0.11001 解:(1) 符号位 Sf = 0⊕1 = 1

去掉符号位后:[y ’]补 = 00.11111 [-y ’]补 = 11.00001

5

2

*

00111

.0

,

11000

.0-

-

=

-

=余数

y

x

(2) 符号位 Sf = 1⊕0 = 1

去掉符号位后:[y’]补 = 00.11001

[-y’]补 = 11.00111

5

2

*

10111

.0

,

01110

.0-

-

=

-

=余数

y

9.设阶码3位,尾数6位,按浮点运算方法,完成下列取值的[x+y],[x-y]运算。

(1)x = 2-011 * 0.100101 y = 2-010 *(- 0.011110)

(2)x = 2-101 *(-0.010110) y = 2-100 * (0.010110)

解:设两数均以补码表示,阶码采用双符号位,尾数采用单符号位,则它们的浮点表示分别为:

题(1) [x]

浮=11 101,0.100101 [y]

=11 110,1.100010

(1)求阶差并对阶

ΔE=Ex-Ey=[Ex]

补-[Ey]

=[Ex]

+[-Ey]

=11 101 + 00 010 =11 111

即ΔE为-1,x阶码小,应使Mx右移1位,Ex加1 [x]

=11 110,0.010010(1)

(2)尾数求和

0.010010(1)

+ 1.100010

1.110100(1)

(3)规格化

可见尾数运算结果的符号位与最高位相同,应执行左规格化处理,每左移尾数一次,相应阶码减1,所以结果尾数为1.010010,阶码为11 100

(4)舍入处理对本题不需要。

(5)判溢出

阶码两符号位为11,不溢出,故最后结果为

[x]

浮+[y]

=11 100,1010010

真值为2-100*(-0.101110)

(2)尾数求差

0.010010(1) + 0.011110

0.110000(1)

[x]

浮-[y]

=11 100,0.110001

真值为2-100*0.110001

题(2) [x]

浮=11 011,1.101010 [y]

=11 100,0.010110

(1)求阶差并对阶

ΔE=Ex-Ey=[Ex]

补-[Ey]

=[Ex]

+[-Ey]

=11 011 + 00 100 =11 111

即ΔE为-1,x阶码小,应使Mx右移1位,Ex加1

[x]

=11 100,1.110101(0)

(2)尾数求和

1.110101(0)

+ 0.010110

0.001011(0)

(3)规格化

可见尾数运算结果的符号位与最高位相同,应执行左规格化处理,每左移尾数一次,相应阶码减1,所以结果尾数为0.101100,阶码为11 010

(4)舍入处理对本题不需要。

(5)判溢出

阶码两符号位为11,不溢出,故最后结果为

[x]

浮+[y]

=11 010,010100

真值为2-110*(0.010100)

10.设数的阶码为3位,尾数6位,用浮点运算方法,计算下列各式(1)(23 ×13/16)×[24×(-9/16)]

(2)(2-2 ×13/32)÷( 23×15/16)

解:(1) Ex = 0011, Mx = 0.110100

Ey = 0100, My = 0.100100

Ez = Ex+Ey = 0111

规格化: 26*0.111011

(2) Ex = 1110, Mx = 0.011010

Ey = 0011, My = 0.111100 Ez = Ex-Ey = 1110+1101 = 1011 [Mx]补 = 00.011010

商 = 0.110110*2-6, 余数=0.101100*2-6

11. 某加法器进位链小组信号为C 4 C 3 C 2 C 1 ,低位来的进位信号为C 0 ,请分另按下述两种方法写出C 4 C 3 C 2 C 1 逻辑表达式: (1)串行进位方式 (2)并行进位方式 解:

4位加法器如上图,

1

111)()(----⊕+=++=++=i i i i i i i i i i i i i i i i i C B A B A C B A B A C B C A B A C

(1)串行进位方式

C 1 = G 1+P 1C 0 其中:G 1 = A 1B 1 P1 = A 1⊕B 1(A 1+B 1也对) C 2 = G 2+P 2C 1 G 2 = A 2B 2 P 2 = A 2⊕B 2 C 3 = G 3+P 3C 2 G 3 = A 3B 3 P 3 = A 3⊕B 3 C 4 = G 4+P 4C 3 G 4 = A 4B 4 P 4 = A 4⊕B 4 (2)并行进位方式 C 1 = G 1+P 1C 0

C 2 = G 2+P 2G 1+P 2P 1C 0

C 3 = G 3+P 3G 2+P 3P 2G 1+P 3P 2P 1C 0

C 4 = G 4+P 4G 3+P 4P 3G 2+P 4P 3P 2G 1+P 4P 3P 2P 1C 0

12. 某机字长16位,使用四位74181组成ALU ,设最低位序号标注为第0位,要求:

(1)写出第5位的进位信号C5的逻辑表达式。

(2)若用一片74182构成二级组间先行进位,请画出逻辑图。 解:

(1)组成最低四位的74181进位输出为:

C 4 = C n+4 = G+PC n = G+PC 0, C 0为向第0位进位

其中,G = y 3+y 2x 3+y 1x 2x 3+y 0x 1x 2x 3,P = x 0x 1x 2x 3,所以 C 5 = y 4+x 4C 4

C 6 = y 5+x 5C 5 = y 5+x 5y 4+x 5x 4C 4 (2)设标准门延迟时间为T ,“与或非”门延迟时间为1.5T ,则进位信号C 0,由最低位传送至C 6需经一个反相器、两级“与或非”门,故产生C 0的最长延迟时间为

T+2*1.5T = 4T

(3)最长求和时间应从施加操作数到ALU 算起:第一片74181有3级“与或非”门(产生控制参数x 0, y 0, C n+4),第二、三片74181共2级反相器和2级“与或非”门(进位链),第四片74181求和逻辑(1级与或非门和1级半加器,设其延迟时间为3T ),故总的加法时间为: t 0 = 3*1.5T+2T+2*1.5T+1.5T+3T = 14T

13.现用通用函数发生器和其他门电路组成一个32位字长并采用辅助函数的三级先进位并行加法器,最低位下标为1,最高位下标为32,要求: (1)写出附加进位链的与或逻辑表达式。 (2)设状态寄存器有4位:V (溢出置位)、Z (结果全零置位)、C (进位置位)、S (结果为负置位)、写出它们的逻辑表达式。 解:串行状态下: C 1 = G 1+P 1C O C 2 = G 2+P 2C 1 C 3 = G 3+P 3C 2 C 4 = G 4+P 4C 3

并行状态下:

C

1 = G

1

+P

1

C

C

2 = G

2

+P

2

C

1

= G

2

+P

2

G

1

+P

2

P

1

C

C

3 = G

3

+P

3

C

2

= G

3

+P

3

G

2

+P

3

P

2

G

1

+P

3

P

2

P

1

C

C

4 = G

4

+P

4

C

3

= G

4

+P

4

P

3

C

2

+P

4

P

3

P

2

C

1

+P

4

P

3

P

2

P

1

C

14.余3码编码的十进制加法器规则如下:两个一位十进制数的余3码相加,如果无进位,则从和数中减去3(加上1101);如结果有进位,则得和数和余3码。试设计余3码编码的十进制加法器单元电路。

解:设余三码编码的两个运算数为X

i 和Y

i

,第一次用二进制加法求和运算的和

数为S

i ’,进位为C

i+1

’,校正后所得的余三码和数为S

i

,进位为C

i+1

,则有:

X

i = X

i3

X

i2

X

i1

X

i0

Y

i = Y

i3

Y

i2

Y

i1

Y

i0

S

i ’ = S

i3

’S

i2

’S

i1

’S

i0

i3i3i2i2i1i1i0

i0

15.现给定的芯片只有与或非门和非门,请设计一个行波进位加法器,要求进位链传递时间最短,逻辑图只画出4位即可。

解:(略)

16.设计一个带有原码阵列乘法(使用芯片)和原码阵列除法(使用芯片)的定点运算器。

解:(略)

相关文档