《计算机组成原理(微课版)》第2章部分习题详解

1.【2015考研真题】由3个“1”和5个“0”组成的8位二进制补码,能表示的最小整数是()。

A.-126

B.-125

C.-32

D.-3

【答案】B

【解题过程】

(1)因为是最小整数,所以补码为1,0000011

(2)1,0000011转换为真值,从右往左找到第一个1,这个“1”左边的所有”数值位“按位取反,结果为1,1111101=-125

2.【2019考研真题】考虑一下C语言代码:

unsigned short usi = 65535;

short si=usi;

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

A.-1

B.-32767

C.32768

D.-65535

【答案】A

【解题过程】

(1)根据题目要求,我们要将无符号整数转换为有符号整数

 无符号整数转换为有符号整数:符号位不变,减1,取反。

(2)65535= 1,111111111111111

减1:   1,111111111111111-1=1,111111111111110

取反: 1,111111111111110为1,000000000000001

1,000000000000001即-1

3.【2012考研真题】假定编译器规定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

【解题过程】

(1)根据题目要求,我们这里是同为无符号数的转化

无符号数的转化:高位全补0

(2)65530转化为二进制:1111111111111010

        1111111111111010二进制(B)转为为十六进制(H)采用8421法,结果为:FFFA(H)

        无符号数的转化:高位全补0,所以在FFFA(H)前面补0,答案为0000 FFFAH

4.【2016考研真题】有如下C语言程序段:short si = -32767;unsigned short usi=si;执行上述两条语句后,usi的值为()。

A.-32767

B.32767

C.32768

D.32769

【答案】D

【解题过程】

(1)根据题目要求,我们要将有符号数转换为无符号数

 前面,我们说无符号数转换为有符号数:符号位不变,减1,取反。

 同理,有符号数转换为无符号数:符号位变数值,取反,加1

(2)-32767

符号位变数值:1,111 1111 1111 1111

取反:1,000000000000000

加1:1,000 0000 0000 0001

1,000 0000 0000 0001即32769

5.【2011考研真题】float 型数据通常用IEEE754单精度浮点数格式表示。若编译器将float 型变量x 分配在一个32位浮点寄存器FR1中,且x=-8.25, 则FR1的内容是( )。

A.C1040000H

B.C2420000H

C.C1840000H

D.C1C20000H

【答案】A

【解题过程】

(1)首先分别将十进制数-8.25的整数部分和小数部分转换为二进制数

-8.25即二进制-1000.01

(2)移动小数点,使尾数变成1.M的形式

-1000.01=-1.00001*2^3

  (3)由-1.00001*2^3可得:

S(数符)=1

E(计算阶码的移码)=偏置值+阶码真值=127+3 = 130,即二进制 10000010,

M(尾数)为00001000000000000000000,

所以十进制-8.25的IEEE754单精度浮点数的十六进制机器码为

1100 0001 0000 0100 0000 0000 0000 0000

即C1040000H 。

6.【2013考研真题】某数采用IEEE754单精度浮点数格式表示为C640 0000H,则该数的值是()。

A.-1.5*2^13

B.-1.5*2^12

C.-0.5*2^13

D.-0.5*2^12

【答案】A

【解题过程】

(1)将十六进制转化为二进制

C6400000H=1100 0110 0100 0000 0000 0000 0000 0000

(2)由此可得:

s=1,表示负数

E=10001100,E(计算阶码的移码)=偏置值+阶码真值,所有140=127+阶码真值,阶码真值为13

M=100 0000 0000 0000 0000 0000

实际尾数:1.M=1.1(后面的0不用管它)

可得:(-1)*1.M*2^13=-1.1*2^13,有的人会疑惑,答案没有-1.1*2^13

那是因为答案将二进制1.1转化为了十进制1.5

小数点前面的按照8421法,还是1;

小数点后面的按照每个二进制位乘以2的相应幂次方,对于小数点后面部分,从左往右依次是2的-1次方、2的-2次方、2的-3次方等。

举个例子:将二进制0.001转化为十进制

第一位为0,则0*1/2,即0乘以2负 一次方;第二位为0,则0*1/4,即0乘以2的负二次方;第三位为1,则1*1/8,即1乘以2的负三次方。

各个位上乘完之后,相加,0*1/2+0*1/4+1*1/8得十进制的0.125

我们这里小数点后面部分0.1即1*1/2,即1乘以2负 一次方,等于0.5

所以答案是-1.5*2^13
7..【2018考研真题】用海明码对长度为8位的数据进行检错和纠错时,若能纠正一位错,则校验位数至少为()。

A.2

B.3

C.4

D.5

【答案】C

【解题过程】

只需记住:

2~4位,用3位校验码;5~11位,用4位校验码。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值