计算机组成原理第六章标准答案00001.docx

上传人:b****3 文档编号:4983295 上传时间:2022-12-12 格式:DOCX 页数:20 大小:39.79KB
下载 相关 举报
计算机组成原理第六章标准答案00001.docx_第1页
第1页 / 共20页
计算机组成原理第六章标准答案00001.docx_第2页
第2页 / 共20页
计算机组成原理第六章标准答案00001.docx_第3页
第3页 / 共20页
计算机组成原理第六章标准答案00001.docx_第4页
第4页 / 共20页
计算机组成原理第六章标准答案00001.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

计算机组成原理第六章标准答案00001.docx

《计算机组成原理第六章标准答案00001.docx》由会员分享,可在线阅读,更多相关《计算机组成原理第六章标准答案00001.docx(20页珍藏版)》请在冰豆网上搜索。

计算机组成原理第六章标准答案00001.docx

计算机组成原理第六章标准答案00001

第6章计算机的运算方法

2.已知X=0.a1a2a3a4a5a6(ai为0或1),讨论下列几种情况时ai各取何值。

(1)

(2)

(3)

解:

(1)若要

,只要a1=1,a2~a6不全为0即可。

(2)若要

,只要a1~a3不全为0即可。

(3)若要

,只要a1=0,a2可任取0或1;

当a2=0时,若a3=0,则必须a4=1,且a5、a6不全为0;

若a3=1,则a4~a6可任取0或1;

当a2=1时,a3~a6均取0。

3.设x为整数,[x]补=1,x1x2x3x4x5,若要求x<-16,试问x1~x5应取何值?

    

解:

若要x< -16,需x1=0,x2~x5任意。

(注:

负数绝对值大的补码码值反而小。

4.设机器数字长为8位(含1位符号位在内),写出对应下列各真值的原码、补码和反码。

      -13/64,29/128,100,-87

解:

真值与不同机器码对应关系如下:

真值

-13/64

29/128

100

-87

二进制

-0.001101

0.001

原码

1.0011010

0.

 0100

11010111

补码

1.1100110

0.

0100

反码

1.1100101

0.

0100

5. 已知[x]补,求[x]原和x。

   [x1]补=1.1100;[x2]补=1.1001;[x3]补=0.1110;  [x4]补=1.0000;

[x5]补=1,0101;[x6]补=1,1100;[x7]补=0,0111;[x8]补=1,0000;

解:

[x]补与[x]原、x的对应关系如下:

[x]补

1.1100

1.1001

0.1110

1.0000

1,0101

1,1100

0,0111

1,0000

[x]原

1.0100

1.0111

0.1110

1,1011

1,0100

0,0111

x

-0.0100

-0.0111

0.1110

-1

-1011

-100

0,0111

-10000

6.设机器数字长为8位(含1位符号位在内),分整数和小数两种情况讨论真值x为何值时,[x]补=[x]原成立。

  

解:

当x为小数时,若x 0,则 [x]补=[x]原成立;

      若x<0,当x=-1/2时,[x]补=[x]原=1.100 0000,则 [x]补=[x]原成立。

当x为整数时,若x0,则 [x]补=[x]原成立;

若x<0,当x= -64时,[x]补=[x]原=1,1000000,则 [x]补=[x]原成立。

7.设x为真值,x*为绝对值,说明[-x*]补=[-x]补能否成立。

解:

当x为真值,x*为绝对值时,[-x*]补=[-x]补不能成立。

原因如下:

(1)当x<0时,由于[-x*]补是一个负值,而[-x]补是一个正值,因此此时[-x*]补=[-x]补不成立;

(2)当x0时,由于-x*=-x,因此此时[-x*]补=[-x]补的结论成立。

8.讨论若[x]补>[y]补,是否有x>y?

  

解:

若[x]补>[y]补,不一定有x>y。

[x]补>[y]补时 x> y的结论只在x> 0且y >0,及x<0且y<0时成立。

由于正数补码的符号位为0,负数补码的符号位为1,当x>0、y<0时,有x>y,但则[x]补<[y]补;同样,当x<0、y>0时,有x< y,但[x]补>[y]补。

9.当十六进制数9B和FF分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少(设机器数采用一位符号位)?

 

解:

真值和机器数的对应关系如下:

9BH

原码

补码

反码

移码

无符号数

对应十进制数

-27

-101

-100

+27

155

FFH

原码

补码

反码

移码

无符号数

对应十进制数

-128

-1

-0

+128

256

10.在整数定点机中,设机器数采用1位符号位,写出±0的原码、补码、反码和移码,得出什么结论?

解:

0的机器数形式如下:

(假定机器数共8位,含1位符号位在内)

真值

原码

补码

反码

移码

+0

00000000

00000000

00000000

10000000

-0

10000000

00000000

1 1111111

10000000

结论:

0的原码和反码分别有+0和-0两种形式,补码和移码只有一种形式,且补码和移码数值位相同,符号位相反。

11.已知机器数字长为4位(含1位符号位),写出整数定点机和小数定点机中原码、补码和反码的全部形式,并注明其对应的十进制真值。

整数定点机

小数定点机

原码

补码

反码

真值

原码

补码

反码

真值

0,000

0,000

0,000

+0

0.000

0.000

0.000

+0

0,001

0,001

0,001

1

0.001

0.001

0.001

0.125

0,010

0,010

0,010

2

0.010

0.010

0.010

0.250

0,011

0,011

0,011

3

0.011

0.011

0.011

0.375

0,100

0,100

0,100

4

0.100

0.100

0.100

0.500

0,101

0,101

0,101

0.101

0.101

0.101

0.625

0,110

0,110

0,110

6

0.110

0.110

0.110

0.750

0,111

0,111

0,111

7

0.111

0.111

0.111

0.875

1,000

0,000

1,111

-0

1.000

0.000

1.111

-0

1,001

1,111

1,110

-1

1.001

1.111

1.110

-0.125

1,010

1,110

1,101

-2

1.010

1.110

1.101

-0.250

1,011

1,101

1,100

-3

1.011

1.101

1.100

-0.375

1,100

1,100

1,011

-4

1.100

1.100

1.011

-0.500

1,101

1,011

1,010

-5

1.101

1.011

1.010

-0.625

1,110

1,010

1,001

-6

1.110

1.010

1.001

-0.750

1,111

1,001

1,000

-7

1.111

1.001

1.000

-0.875

1,000

-8

1.000

-1

12. 设浮点数格式为:

阶码5位(含1位阶符),尾数11位(含1位数符)。

写出51/128、-27/1024、7.375、-86.5所对应的机器数。

要求如下:

(1)阶码和尾数均为原码。

(2)阶码和尾数均为补码。

(3)阶码为移码,尾数为补码。

   

解:

据题意画出该浮点数的格式:

阶符1位

阶码4位

数符1位

尾数10位

    将十进制数转换为二进制:

x1=51/128=0.0110011B= 2-1*0.110011B

 x2=-27/1024=-0.0000011011B= 2-5*(-0.11011B)

 x3=7.375=111.011B=23*0.111011B

x4=-86.5=-1010110.1B=27*(-0.10101101B)

则以上各数的浮点规格化数为:

(1)[x1]浮=1,0001;0.110 0110000

 [x2]浮=1,0101;1.110110 0000

 [x3]浮=0,0011;0.1110110000

[x4]浮=0,0111;1.1010110100

(2)[x1]浮=1,1111;0.110 011000 0

 [x2]浮=1,1011;1.001010000 0

  [x3]浮=0,0011;0.1110110000

 [x4]浮=0,0111;1.010100110 0

(3)[x1]浮=0,1111;0.110011000 0

 [x2]浮=0,1011;1.0010100000

   [x3]浮=1,0011;0.111011000 0

 [x4]浮=1,0111;1.010 1001100

13. 浮点数格式同上题,当阶码基值分别取2和16时:

  

(1)说明2和16在浮点数中如何表示。

   (2)基值不同对浮点数什么有影响?

   (3)当阶码和尾数均用补码表示,且尾数采用规格化形式,给出两种情况下所能表示的最大正数和非零最小正数真值。

解:

(1)阶码基值不论取何值,在浮点数中均为隐含表示,即:

2和16不出现在浮点格式中,仅为人为的约定。

(2)当基值不同时,对数的表示范围和精度都有影响。

即:

在浮点格式不变的情况下,基越大,可表示的浮点数范围越大,但浮点数精度越低。

(3)r=2时,

最大正数的浮点格式为:

0,1111;0.111111111 1

  其真值为:

N+max=215×(1-2-10)

非零最小规格化正数浮点格式为:

1,0000;0.100000 0000

   其真值为:

N+min=2-16×2-1=2-17

r=16时,

最大正数的浮点格式为:

0,1111;0.1111 111111

       其真值为:

N+max=1615×(1-2-10)

      非零最小规格化正数浮点格式为:

1,0000;0.0001000000

       其真值为:

N+min=16-16×16-1=16-17

14.设浮点数字长为32位,欲表示±6万间的十进制数,在保证数的最大精度条件下,除阶符、数符各取1位外,阶码和尾数各取几位?

按这样分配,该浮点数溢出的条件是什么?

解:

若要保证数的最大精度,应取阶码的基值=2。

  若要表示±6万间的十进制数,由于32768(215)<6万<65536(216),则:

阶码除阶符外还应取5位(向上取2的幂)。

    故:

尾数位数=32-1-1-5=25位

  25(32)   该浮点数格式如下:

阶符(1位)

阶码(5位)

数符(1位)

尾数(25位)

  按此格式,该浮点数上溢的条件为:

阶码25

15.什么是机器零?

若要求全0表示机器零,浮点数的阶码和尾数应采取什么机器数形式?

    

解:

机器零指机器数所表示的零的形式,它与真值零的区别是:

机器零在数轴上表示为“0”点及其附近的一段区域,即在计算机中小到机器数的精度达不到的数均视为“机器零”,而真零对应数轴上的一点(0点)。

若要求用“全0”表示浮点机器零,则浮点数的阶码应用移码、尾数用补码表示(此时阶码为最小阶、尾数为零,而移码的最小码值正好为“0”,补码的零的形式也为“0”,拼起来正好为一串0的形式)。

16.设机器数字长为16位,写出下列各种情况下它能表示的数的范围。

设机器数采用一位符号位,答案均用十进制表示。

  

(1)无符号数;

   

(2)原码表示的定点小数。

  (3)补码表示的定点小数。

   (4)补码表示的定点整数。

  (5)原码表示的定点整数。

    (6)浮点数的格式为:

阶码6位(含1位阶符),尾数10位(含1位数符)。

分别写出其正数和负数的表示范围。

  (7)浮点数格式同(6),机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。

解:

(1)无符号整数:

0~216 -1,即:

0~ 65535;

  无符号小数:

0~ 1 -2-16 ,即:

0~ 0.99998;

(2)原码定点小数:

-1+2-15~1- 2-15 ,即:

-0.99997~0.99997

(3)补码定点小数:

- 1~1 -2-15 ,即:

-1~0.99997

(4)补码定点整数:

-215~215-1,即:

-32768~32767

(5)原码定点整数:

-215+1~215-1,即:

-32767~32767

(6)据题意画出该浮点数格式,当阶码和尾数均采用原码,非规格化数表示时:

最大负数=1,11111;1.000 000001,即 -2-92-31

最小负数=0,11 111;1.111111111,即 -(1-2-9)231

则负数表示范围为:

-(1-2-9)231 ——-2-92-31

最大正数= 0,11111;0.111111111,即(1-2-9)231

最小正数=1,11111;0.000000001,即2-92-31

则正数表示范围为:

2-92-31——(1-2-9)231

(7)当机器数采用补码规格化形式时,若不考虑隐藏位,则

最大负数=1,00000;1.011111111,即-2-12-32

最小负数=0,11111;1.000000000,即 -1231

则负数表示范围为:

-1231 ——-2-12-32

最大正数=0,11111;0.111111111,即(1-2-9)231

最小正数=1,00 000;0.100000000,即2-12-32

则正数表示范围为:

2-12-32 ——(1-2-9)231

17.设机器数字长为8位(包括一位符号位),对下列各机器数进行算术左移一位、两位,算术右移一位、两位,讨论结果是否正确。

[x1]原=0.001 1010;[y1]补=0.101 0100;[z1]反=1.010 1111;

[x2]原=1.110 1000;[y2]补=1.110 1000;[z2]反=1.1101000;

[x3]原=1.0011001;[y3]补=1.0011001;[z3]反=1.001 1001。

解:

算术左移一位:

[x1]原=0.0110100;正确

[x2]原=1.1010000;溢出(丢1)出错

[x3]原=1.011 0010;正确

[y1]补=0.010 1000;溢出(丢1)出错

[y2]补=1.101 0000;正确

[y3]补=1.0110010;溢出(丢0)出错

[z1]反=1.1011111;溢出(丢0)出错

[z2]反=1.1010001;正确

[z3]反=1.0110011;溢出(丢0)出错

算术左移两位:

[x1]原=0.1101000;正确 

[x2]原=1.0100000;溢出(丢11)出错

[x3]原=1.1100100;正确

[y1]补=0.1010000;溢出(丢10)出错

[y2]补=1.0100000;正确 

[y3]补=1.1100100;溢出(丢00)出错

[z1]反=1.0111111;溢出(丢01)出错 

[z2]反=1.0100011;正确

[z3]反=1.1100111;溢出(丢00)出错

算术右移一位:

[x1]原=0.0001101;正确 

[x2]原=1.011 0100;正确

[x3]原=1.0001100

(1);丢1,产生误差

[y1]补=0.0101010;正确

[y2]补=1.1110100;正确

[y3]补=1.1001100

(1);丢1,产生误差

[z1]反=1.101 0111;正确

[z2]反=1.111 0100(0);丢0,产生误差

[z3]反=1.1001100;正确

算术右移两位:

[x1]原=0.0000110(10);产生误差

[x2]原=1.001 1010;正确

[x3]原=1.0000110(01);产生误差

[y1]补=0.001 0101;正确

[y2]补=1.1111010;正确

[y3]补=1.1100110(01);产生误差

[z1]反=1.110 1011;正确

[z2]反=1.1111010(00);产生误差

[z3]反=1.1100110(01);产生误差ﻫ

18.试比较逻辑移位和算术移位。

   

解:

逻辑移位和算术移位的区别:

   逻辑移位是对逻辑数或无符号数进行的移位,其特点是不论左移还是右移,空出位均补0,移位时不考虑符号位。

  算术移位是对带符号数进行的移位操作,其关键规则是移位时符号位保持不变,空出位的补入值与数的正负、移位方向、采用的码制等有关。

补码或反码右移时具有符号延伸特性。

左移时可能产生溢出错误,右移时可能丢失精度。

19.设机器数字长为8位(含1位符号位),用补码运算规则计算下列各题。

 

(1)A=9/64,B=-13/32,求A+B。

 

(2)A=19/32,B=-17/128,求A-B。

 (3)A=-3/16,B=9/32,求A+B。

 (4)A=-87,B=53,求A-B。

 (5)A=115,B=-24,求A+B。

  

解:

(1)A=9/64=0.001 0010B, B=-13/32=-0.0110100B

    [A]补=0.0010010,[B]补=1.1001100

[A+B]补= 0.0010010+1.1001100= 1.1011110——无溢出

A+B=-0.010 0010B=-17/64

  

(2)A=19/32=0.1001100B,B=-17/128= -0.0010001B

    [A]补=0.1001100,[B]补=1.1101111,[-B]补=0.001 0001

[A-B]补=0.1001100+0.0010001=0.1011101——无溢出

A-B=0.101 1101B=93/128B

(3)A= -3/16=-0.0011000B,B=9/32=0.0100100B

  [A]补=1.1101000,[B]补=0.0100100

 [A+B]补= 1.1101000+0.0100100= 0.0001100——无溢出

A+B=0.000 1100B= 3/32

 (4)A= -87= -101 0111B,B=53=110101B

   [A]补=1 0101001,[B]补=0 0110101,[-B]补=11001011

[A-B]补=10101001+11001011=01110100—— 溢出

(5)A=115=111 0011B,B= -24=-11 000B

   [A]补=01110011,[B]补=1,1101000

[A+B]补=01110011+11101000=01011011——无溢出

A+B=101 1011B =91

20. 用原码一位乘、两位乘和补码一位乘(Booth算法)、两位乘计算x·y。

  

(1)x= 0.110 111,y=-0.101 110;

   

(2)x=-0.010111,y=-0.010101;

    (3)x=19,y=35;

   (4)x= 0.110 11,y=-0.11101。

解:

先将数据转换成所需的机器数,然后计算,最后结果转换成真值。

(1)[x]原=0.110111,[y]原=1.101110,x*=0.110111,y*=0.101110

原码一位乘:

部分积

乘数y*

说明

0.000000

+0.000 000

101110

部分积初值为0,乘数为0加0

  0.000000

 0.000000

  +0.110 111

010 111

右移一位

乘数为1,加上x*

 0.110111

0.011 011

  +0.110111

101011

右移一位

乘数为1,加上x*

1.010010

 0.101001

 +0.110 111

010 101

右移一位

乘数为1,加上x*

  1.100000

  0.110000

  +0.000 000

001010

右移一位

乘数为0,加上0

0.110 000

 0.011 000

+0.110111

000101

右移一位

乘数为1,加上x*

1.001 111

 0.100111

100010

右移一位

即x*×y*=0.100111100010,z0=x0y0=01=1,

[x×y]原=1.100 111100010,x·y=-0.100 111100010

原码两位乘:

[-x*]补=1.001 001,2x*=1.101 110

部分积

乘数y*

Cj

说明

000. 000000

+001. 101 110

00 101110

0

部分积初值为0,Cj=0

根据yn-1ynCj=100,加2x*,保持Cj=0

001. 101110

0

 000.011 011

+111.001001

10001011

10001011

0

右移2位

根据yn-1ynCj=110,加[-x*]补,置Cj=1

111.100100

111.111 001

+111.001001

00100010

1

右移2位

根据yn-1ynCj=101,加[-x*]补,置Cj=1

 111 .000010

111.110000

+000.110111

10001000

1

右移2位

根据yn-1ynCj=001,加x*,保持Cj=0

 000.100111

100010

即x*×y*=0.100 111100010,z0=x0y0=01=1,

[x×y]原=1.100111100010,x·y= -0.100111100010

补码一位乘:

[x]补=0.110111,[-x]补=1.001001,[y]补=1.010010

部分积

乘数

Yn+1

说明

00. 000000

 00.000000

+11.001001

1 010010

0101001

0

Ynyn+1=00,部分积右移1位

Ynyn+1=10,部分积加[-x]补

 11. 001 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1