计算机组成原理——数制与编码

发布时间:2023年12月18日

1.在以下编码中,零的表示唯一的是(C)
A.反码
B.原码
C.补码
D.原码和移码

2.假设某数的真值为-100 1010B,在计算机内部表示为1011 0110B,该数采用的编码为(D)
A.移码
B.原码
C.反码
D.补码

3.考虑以下代码:
short si=-8196;
unsigned short usi=si;
如果采用2个字节表示short类型变量,则执行上述语句后usi的值为(C)

A.8196
B.34572
C.57340
D.57339

short占2字节,即16个二进制位,其中最高位是符号位,其余的15位为数值位。

无符号short占2字节,即16个二进制位,16位全为数值位。

所以-8196原码为1010 0000 0000 0100,计算机中用补码为1101 1111 1111 1100

unsigned short的补码为1101 1111 1111 1100,所以真值为8196

4.关于IEEE754单精度数的描述,错误的是(B)
A.阶码采用移码
B.尾数采用补码
C.便于软件移植
D.尾数的有效数字为24位

因为尾数部分有隐藏的1,所以有效数字为24位,尾数采用原码

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

阶码用移码表示,8位移码的表示范围为-128——127,在IEEE754中其中-128,-127有特殊用处,所以

8位移码的表示范围为-126——127,所以取最大值127

尾数用原码表示,所以全为1。即1.11111……(小数点后23位全为1)

0.1111……可以表示为1-2^-23,再加1就是2-2^-23,即1.1111……

(2-2^-23)*2^127=2^128-2^104

6.在汉字字符的存储和检索中,需要采用(C)

A.输入码
B.区位码
C.内码
D.国标码

7.假设计算机按照字节编址,采用小端模式,有一个float类型变量x的地址为FFFF C000H起始,x=12345678H,则FFFF C001H中的内容为(C)
A.1234H
B.34H
C.56H
D.5678H

按照字节编址,一字节8个二进制位,所以可以表示两个16进制数。

8.以下字符编码含有奇偶校验位,假设没有发生错误,采用奇校验时的字符编码为(C)
A.01010011
B.01100110
C.10110000
D.00110101

这道题的题干我一开始不理解是什么意思,后来查了查,就是让你找出那个是奇校验。

9.一个C语言程序运行在32位计算机上,程序中有以下变量:整型变量s,x,z,短整型变量y,x=127,y=-9,执行x=x+y,s=x,z=y,则在计算机中s,z的机器码表示为(B)
A.s补码=0076H,z补码=0000FFF7H
B.s补码=00000076H,z补码=FFFFFFF7H
C.s补码=00000076H,z补码=FFF7H
D.s补码=00000076H,z补码=8009H
整型变量int占4字节,即32个二进制位

短整型变量short占2字节,即16个二进制位,1位符号位,15位数值位。

x=x+y,x变为118

s=x,s为118:0000 0000 0000 0000 0000 0000 0111 0110=00000076H

z=y,z为-9=原码:1000 0000 0000 0000 0000 0000 0000 1001=补码:1111 1111 1111 1111 1111 1111 1111 0111=FFFFFFF7H

10.下列采用偶检验的8位奇偶校验编码中正确的是(B)
A.10111010
B.11110011
C.01100111
D.00000001

11.下列关于浮点数规格化的的描述中,不正确的是(C)
A.提高了存储数据的表示精度
B.简化了浮点数运算
C.防止运算溢出
D.使数据的表示方法唯一,简化了数据交换

C:浮点数规格化不能直接防止运算溢出。浮点数的阶码范围是有限的,如果结果的阶码超出了表示范围,就会发生溢出。规格化主要有助于提高表示的精度,并不直接涉及防止溢出。

12.IEEE754标准规定的32位浮点数格式所能表示的最大规格化正数为(2^128-2^104

符号位为0,阶码位为127,数值位全1,所以为:(1.1111……)*2^127

0.1111……可以表示为1-2^-23,再加1就是2-2^-23,即1.1111……

(2-2^-23)*2^127=2^128-2^104

13.十进制数-17在字长为16位的计算机中补码的16进制表示为(FFEFH

-17二进制表示:1000 0000 0001?0001

1000 0000 0001?0001补码为1111 1111 1110 1111,转化为16进制为FFEFH

14.写出-1/8的IEEE754单精度浮点数格式

例题:

本题:

-1/8=-0.125

二进制表示:-0.001=-1.0*2^-3

其中2的指数-3是阶码部分的真值,需要加上127,得124=0111 1100

数符位为1

尾数为.10000000……

所以表示为1 0111 1100?0000 0000 0000 0000……,转换成十六进制就是BE00 0000H。

15.已知机器字长64位,定点整数,若采用原码表示,其最大值是(2^63-1)

1位符号位,63位数值位,所以原码的表示范围为? [-(2^63-1),2^63-1]

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

整数为负数,且绝对值最大的时候表示的整数最小

而因为负数数字是由原码的数字位直接体现的,因此补码需要取反

所以补码除了符号位,其他的地方要最小地表示

因此表示最小整数的补码为1000 0011

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 反码为1000 0010

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 原码为1111 1101,即-125

17.已知定点小数,补码表示,其编码为:1.000 0000,则其真值为()

1111 1110=1000 0001=-1

18.IEEE754单精度浮点数格式表示的数中,最小规格化正数是()

符号位为0

阶码用移码表示,阶码位的取值范围为-126-127,所以取-126

数值位全为0,但是有一个隐含的1

终最小规格化正数为:1.0 × 2 ^ (-126)

19.已知浮点数N的32位IEEE754标准存储格式为43940000H,求数N的十进制真值。

43940000H=?0100 0011 1001 0100 0000 0000 0000 0000

符号位(蓝色)为0,表示是正数

阶码位(绿色)为100 0011 1,需要减去127=0111 1111,得:1000=8

数值位(黑色)为001 0100 0000 0000 0000 0000,表示1.00101

所以:1.00101*2^8=1 0010 1000=296

20.已知浮点数N的十进制真值为 -?6\tfrac{5}{8},试将其转换成32位IEEE754浮点数的存储格式(最终结果要求用十六进制表示)

先将N的绝对值转化为二进制数:110.101

然后进行规格化:110.101=1.10101*2^2

其中10101为数值位

2+127=10+0111 1111=1000 0001

所以表示为:1 1000 0001 1010?1000 0000 0000 0000 000=C0D40000H

文章来源:https://blog.csdn.net/JYHZZ/article/details/135055860
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。