第二章
5 ?分别写出下列十进制数的原码、反码和补码。
7/16 ,
5/16 , 4/16 ,
1/16 , 0, -1/16 , -4/16 , -5/16 ,
-7/16
答:
原码
反码
补码
7/16
0.0111
0.0111
0.0111
5/16
0.0101
0.0101
0.0101
4/16
0.0100
0.0100
0.0100
1/16
0.0001
0.0001
0.0001
+0
0.0000
0.0000
0.0000
-0
1.0000
1.1111
0.0000
-1/16
1.0001
1.1110
1.1111
-4/16
1.0100
1.1011
1.1100
-5/16
1.0101
1.1010
1.1011
-7/16
1.0111
1.1000
1.1001
7 ?已知下列数的补码表示,请写出它们的真值。
[x]补=0.10100凶补=1.0111[x]补=1.0000
答:二进制真值分别为:0.101 , -0.1001 , -1 o
10?若机器字长16位,以下几种情况能表示的数据范围是多少?
1)无符号整数
2)原码定点小数
3)补码定点小数
4)原码定点整数
5)补码定点整数
答:1)无符号整数
0~2 16-1
2)原码定点小数
-15
-(1-2 )?1-2
3)补码定点小数
-15
-1~ 1-2
4)原码定点整数-
1515
(2 -1)?2 -1
5)补码定点整数
1515
-2 ~ 2 -
1
14.将下列数转换为IEEE单精度浮点数:
1)28.75
4
解:1)十进制数28.75转化为二进制数:11100.11B,规格化为11100.11=1.110011 X2
该数为正,符号位 =0 ;移码表示的阶码 ;尾数=110 0110 0000 0000 0000 0000
以短浮点数格式存储该数为0 110 0110 0000 0000 0000 0000=41E60000H
32
21.某循环冗余校验码的生成多项式为x +x +1,若发送信息位 1111和1100 ,则CRC码
分别为什么?接收端收到的CRC码:0000000、1001111、0010111、1011000中哪些是发
生了错误的?
3
答:A(x)=1111 和 1100 左移 r=3 位后 A(x) x =1111000 和 1100000
32/八、
g(x)= x +x + 仁1101(r+仁4 位)
3十
A(x) x/g(x)=1011+111/1101和 1001+101/1101
3
A(x) x+R(x)=1111111 和 1100101----- 这就是 2 个 CRC 码
接收到的CRC码除以生成多项式余数不为0的出错:1001111、1011000 。
第三章
9.用原码一位乘法和原码两位乘法分别计算X& :
a. X= -0.11011 ,Y=0.11101
解:a原码一位乘|X|=00.11011 t寄存器B, |Y|=0.11101宀寄存器C, 0宀寄存器A。
部分积A乘数C运算过程
+
00.00000
00.11011
1
1
1
0
1
C5 = 1 , + |X|
00.11011
部分积右移一位
t
00.01101
1
1
1
1
0
C4= 0 , +0
+
00.00000
00.01101
部分积右移一位
t
00.00110
1
1
1
1
1
C3=1 , + |X|
+
00.11011
01.00001
部分积右移一位
t
00.10000
1
1
1
1
1
C2 = 1 , + |X|
+
00.11011
01.01011
部分积右移一位
t
00.10101
1
1
1
1
1
C1 = 1 , + |X|
+
00.11011
01.10000
部分积右移一位
T00.1100001111
由于两数异号,所以得X8 = -0.1100001111
10.用补码一位乘法和补码两位乘法分别计算XX :
a. X= -0.11011 ,Y=0.11101
a补码一位乘部分积 0t寄存器 A, [X]补=11.00101 t寄存器 B, [Y]补=0.11101 t寄
存器C。用Booth法求解过程如下:
+
部分积A
乘数
C
1
0
附加位
1 0
说明
C5C6 = 10 , +[-X]补
[-X]补
00.00000
00.11011
0.
1
1
00.11011
右移一位
t
00.01101
1
0
1
1
1
0 1
C5C6 = 01 , +[X]补
+
凶补
11.00101
11.10010
右移一位