《计算机组成原理(微课版)》第2章课后习题答案

2.1解释下列名词

真值:正号和负号分别用“+”和“-”表示,数据位保持二进制值不变的数据表示方法。

机器码:又称机器数,数据在机器中的表示形式,是正负符号数码化后的二进制数据。

原码:正数符号用0表示,负数符号用1表示,数值位保持不变。

反码:符号位与原码相同,真值为正数时,反码和原码相同;真值为负数时,反码数值位为真值数值位取反。

补码: 真值为正数时,补码和原码相同;真值为负数时,对真值数据位从右到左顺序扫描,右起第一个1及其右边的0保持不变,其余各位取反。

移码:用于定点整数的表示,通常用于表示浮点数的阶码(正数的移码符号位为1,负数的为0)。

模:模(或称模数)是一个数值计量系统的计量范围,记作mod或M。

定点数:约定计算机中所有数据的小数点位置固定。

浮点数:小数点位置不固定,可以浮动。

溢出:当数据超出计算机所能表示的数据范围时称为溢出。

精度溢出:所有不在数轴刻度上的纯小数都超出了定点小数所能表示的精度,无法表示,此时定点小数发生精度溢出。

浮点数规格化:将非规格化的数处理成规格化数的过程。规格化数规定尾数用纯小数表示,且真值表示时小数点后第一位不为0(以机器数表示时对小数点后第一位的规定与具体的机器数的形式有关)。


BCD码(8421码):用4位二进制数来表示1位十进制数中的0~9这10个数码,即二进制表示的十进制数。是有权编码。

二进制浮点数:不能精确表示十进制数,给运算带来很大误差

ACSII码:用于表示字符大写字母之间ACSII码连续小写字母之间ASCII码连续,但是大小写字母之间不连续

汉字机内码:计算机内部存储、处理加工和传输汉字时所用的由0和1符号组成的代码。

字形码(字型码):汉字的输出码

汉字库:汉字字形码按区位码的顺序排列,以二进制文件形式存放在存储器中,构成汉字字模字库。

码距(海明距离):一组编码中对应位上数字位不同的最小个数。码距=2,有检错能力,码距≥3,可能还会有纠错能力

海明校验(ECC):是一种基于多重奇校验且具有检测与纠正错误的校验方法。其基本原理是将有效信息按某种规律分成若干组,每组安排一个校验位进行奇偶测试,就能提供多位检错信息,以指出最大可能是哪位出错,从而将其纠正。

校验位k和信息位n之间的关系:2^k≥n+k+1
校验位Pi应该放在2^(i-1)的位置上

循环冗余校验(CRC):是数据通信领域中最常用的一种具有检测与纠正错误能力差错校验码,基利用生成多项式并基于模2运算建立编码规则。
 

2.2

(1)由3个“1”和5个“0”组成的8位2进制补码,能表示的最小整数是(  )。

A.-126        B.-125        C.-32        D.-3

答案:A

最小整数10000011

原码为11111101B=2^7-1-2=-125

(2)考虑以下C语言代码

unsigned short usi=65535;
short si=usi;

执行上述程序段后,si的值是(  )。

A.-1        B.-32767        C.-32768        D.-65535

答案:A

unsigned short usi=65535=FFFFH(原码表示)
short si=FFFFH(补码)=1000 0000 0000 0001B(原码)=-1

(3)假定编译器规定int和short类型长度分别为32位和16位,执行下列C语言语句: unsigned short x=65530; unsigned int y=x; 得到y的机器数为
A.0000 7FFAH
B.0000 FFFAH
C.FFFF 7FFAH
D.FFFF FFFAH

答案:B

unsigned short x=65530=1111 1111 1111 1010B=FFFAH

unsigned int y=x=0000 FFFAH

有符号数转化高位全补符号数,无符号数转化高位全补0。

(4)有如下C语言程序段: 

short si=-32767;
unsigned short usi=si;

执行上述两条语句后,usi的值为()
A.-32767
B.32767
C.32768
D.32769

答案:D

32767=0111 1111 1111 1111

short si=-32767=1000 0000 0000 0001
unsigned short usi=si=1000 0000 0000 0001=32769

(5)float型数据通常用IEEE 754单精度浮点数格式表示。若编译器将float型变量x分配在一个32位浮点寄存器FR1中,且x=-8.25,则FR1的内容是()。
A.C104 0000H
B.C242 0000H
C.C184 0000H
D.C1C2 0000H 

答案:A

IEEE754:符号位S(1位)+阶码E(8位,偏移量为127的移码)+尾数M(23位,省略高位1)
X=-8.25=-1000.01=-1.00001*2^3

S=1

E=3+127=1000 0010B

M=0000 1000 0000 0000 0000 000

FR1的内容是1100 0001 0000 0100 0000 0000 0000 0000=C104 0000H

(6)某数采用IEEE754单精度浮点数格式表示为C640 0000H,则该数的值是_______。
A.-1.5×2^13
B.-1.5×2^12
C.-0.5×2^13
D.-0.5×2^12 

答案:A

C640 0000H=1100 0110 0100 0000 0000 0000 0000 0000

S=1

E=1000 1100B=128+12

阶数为140-127=13

M=100 0000 0000 0000 0000 0000

该数的值是-1.1*2^13

(7)float类型(即IEEE754单精度浮点数格式)能表示的最大正整数是_______。
A.2^126 -2^103
B.2^127 -2^104
C.2^127 -2^103
D.2^128 -2^104

答案:D

S=0

E=1111 1110B(E=1111 1111B时为非规格化数)

阶数为127

M=111 1111 1111 1111 1111 1111

1.111 1111 1111 1111 1111 1111=2-2^-23

float类型(即IEEE754单精度浮点数格式)能表示的最大正整数是(2-2^-23)*2^127

(8)IEEE 754单精度浮点格式表示的数中,最小的规格化正数是()
A.1.0×2-126
B.1.0×2-127
C.1.0×2-128
D.1.0×2-149


(9)float型数据通常用IEEE754单精度浮点格式表示,假定两个float型变量x和y分别存放在32位寄存器f1和f2中,若(f1)=CC900000H,(f2)=B0C00000H,则x和y之间的关系为()。
A.x<y且符号相同
B.x<y且符号不同
C.x>y且符号相同
D.x>y且符号不同


(10)假定变量i,f,d数据类型分别为int,float和double(int用补码表示,float和double分别用IEEE754单精度和双精度浮点数据格式表示),已知i=785,f=1.5678,d=1.5。若在32位机器中执行下列关系表达式,则结果为真是()。
(Ⅰ)i==(int)(float)i
(Ⅱ)f==(float)(int)f
(Ⅲ)f==(float)(double)f
(Ⅳ)(d+f)-d==f
A.仅Ⅰ和Ⅱ
B.仅Ⅰ和Ⅲ
C.仅Ⅱ和Ⅲ
D.仅Ⅲ和Ⅳ


(11)用海明码对长度为8位的数据进行检/纠错时,若能纠正一位错,则校验位数至少为
A.2
B.3
C.4
D.5
 

2.3回答下列问题。 

(1)为什么计算机中采用二进制进行数据表示和运算?

1、技术实现简单:计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。

2、抗干扰能力强,可靠性高。

3、运算规则简单。

4、适合逻辑运算。

5、易于与其他进制进行转换 

(2)相对于奇偶校验,交叉奇偶校验的检错与纠错能力的提高需要付出哪些方面的代价?

实现更加复杂,校验码占用内存的变大,原始数据的传输效率变低。

(3)为什么计算机中采用补码表示带符号的整数?

使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。

(4)浮点数的表示范围和精度分别由什么决定?

表示范围由阶码E的位数决定,精度由尾数的位数决定。

(5)汉字输入码、机内码和字形码在汉字处理过程中各有何作用?

1、输入码:将汉字输入到计算机中。常用的输入码有拼音码、五笔字型码、自然码、表形码、认知码、区位码和电报码等
2、机内码:输入的汉字外码到机器内部都要转换成机内码,才能被存储和进行各种处理。
3、字形码:字形码是汉字的输出码,输出汉字时都采用图形方式,无论汉字的笔画多少,每个汉字都可以写在同样大小的方块中。通常用16×16点阵来显示汉字。

(6)在机内码中如何区分ASCII字符和汉字字符?

ASCII码的首位为0,而汉字编码的首位为1。

(7)为什么现代处理器中又开始支持十进制浮点数运算?

十进制浮点数可以解决二级制浮点数最大的问题——不能精确表示十进制数。

(8)如何识别浮点数的正负?浮点数能表示的数值范围和数值的精度取决于什么?

尾数的符号位也就是浮点数的符号位S,为1时表示为负数,为0时表示为正数。

(9)浮点数有两个0会带来什么问题? 

不能保持原数据的精度。

(10)简述CRC校验码的检错原理,CRC能纠错吗?

1、原理:先在要发送的帧后面附加一个数(即用来校验的校验码,但要注意,这里的数也是二进制序列的,下同),生成一个新帧发送给接收端。当然,这个附加的数不是随意的,它要使所生成的新帧能与发送端和接收端共同选定的某个特定数整除(注意,这里不是直接采用二进制除法,而是采用一种称之为“模2除法”)。到达接收端后,再把接收到的新帧除以(同样采用“模2除法”)这个选定的除数。因为在发送端发送数据帧之前就已通过附加一个数,做了“去余”处理(也就已经能整除了),所以结果应该是没有余数。如果有余数,则表明该帧在传输过程中出现了差错。

2、CRC能纠错。

2.7分析下列几种情况下所能表示的数据范围分别是多少?

(1)16位无符号数;

(2)16位原码定点小数;

(3)16位补码定点小数;

(4)16位补码定点整数。

(1)0~2^{16}-1

(2)-(1-2^{-15})~1-2^{-15}

(3)-1~1-2^{-15}

(4)-32768~32767

2.15设有效信息为01011011,分别写出其奇校验码和偶校验码。如果接收方收到的有效信息为01011010,说明如何发现错误。

奇校验码:010110110
偶校验码: 010110111

假设采用偶校验

如果接收方收到的x=010110101,接收方计算得到的检错位G=1,表明传送的信息发生了错误。如果接收方收到的x=010110100,接收方计算得到的检错位G=0,表明传送的信息没有发生错误,严格地说是没有出现奇数位错。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值