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的十进制真值为 - ,试将其转换成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