计算机组成原理 第二章 习题
2-1设机器数的字长为8位(含1为符号位),分别写成下列各二进制数的原码、补码和反码。
0,-0,0.1000,-0.1000,0.1111,-0.1111,1101,-1101
____________________________________________
真值 原码 补码 反码
-----------------------------------------------------------------
0 00000000 00000000 00000000
-0 10000000 00000000 11111111
0.1000 0.1000000 0.1000000 0.1000000
-0.1000 1.1000000 1.1000000 1.0111111
0.1111 0.1111000 0.1111000 0.1111000
-0.1111 1.1111000 1.0001000 1.0000111
1101 00001101 00001101 00001101
-1101 10001101 11110011 11110010
------------------------------------------------------------------
2-2写出下列各数的原码、补码和反码
7/16, 4/16, 1/16,±0, -1/16, -4/16,-7/16
解:7/16=7*2^4=0.0111
4/16=4*2^4=0.0100
1/16=1*2^4=0.0001
真值 原码 补码 反码
7/16 0.0111 0.0111 0.0111
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.0000 1.1111
-1/16 1.0001 1.1111 1.1110
-4/16 1.0100 1.1100 1.1011
-7/16 1.0111 1.1001 1.1000
2-3已知下列的原码表示,分别写出它们的补码表示
[X]原=0.10100,[X]原=1.10111
[X]原=0.10100->[X]补=0.01100
[X]原=1.10111->[X]补=1.01001
2-4已知下列数的补码表示,分别写出它们的真值。
[X]补=0.10100, [X]补=1.10111
[X]补=0.10100->X=0.10100
[X]补=1.10111->X=0.01001
2-5设一个数二进制数X≥0,表示成X=0.A1A2A3A4A5A6,其中A1~A6取1或0.
(1)若要X>1/2,A1~A6要满足什么条件?
解:X>1/2的代码为:0.100001~0.111111
A1~A6要满足:A1=1,A2+A3+A4+A5+A6=1;
(2)若要X≥1/8,A1~A6要满足什么条件?
解:X≥1/8的代码为:0.001000~0.111111
A1~A6要满足:A1+A2=0,A3=1;
(3)若要1/4≥X>1/16,A1~A6要满足什么条件?
解:1/4≥X>1/16代码为:0.000101~0.010000
A1~A6要满足:A2=1,A1+A3+A4+A5+A6=0
2-6设[X]原=1. A1A2A3A4A5A6,
(1)若要X>-1/2,A1~A6要满足什么条件?
解:X>-1/2的代码为:
1.000001 -1/64
………
1.011111 -31/64
A1~A6要满足:A1=0,A2+A2+A3+A4+A5+A6=1
(2)若要-1/8≥X≥-1/4.A1~A6要满足什么条件?
解:-1/8≥X≥-1/4代码为:
1.000001 -1/64
1.001001 -9/64
……..
1.001111 -15/64
1.010000 -1/4
A1~A6要满足:A1+A2=0,A3=1;
2-7若习题2-6中的[X]原改为[X]补结果如何?
解:X>-1/2的代码为:
1.100001 -31/64
…….
1.111111 -1/64
A1~A6要满足:A1=1,A2+A3+A4+A5+A6=1
-1/8≥X≥-1/4代码为:
1.110000 -1/4
1.110001 -15/64
…….
1.110111 -9/64
1.111000 -1/8
A1~A6要满足:A1·A2=1,A3=0
2-8一个n位字长的二进制定点整数,其中一位为符号位,分别写出在补码和反码两种情况下:
(1)模数; (2)最大的正数;
(3)最负的数; (4)符号位的权;
(5)-1的表示形式; (6)0的表达形式;
2-9某计算机字长为16位,简述下列几种情况下所能表示数值的范围。
(1)无符号整数; (2)用原码表示定点小数;
(3)用补码表示定点小数; (4)用原码表示定点整数;
(5)用补码表示的定点整数
2-10某计算机字长为32位,试分别写出无符号整数和带符号整数(补码)的表示范围(用十进制表示)
2-11某浮点数字长为12位,其中阶符为1位,阶码数值为3位,数符为1位,尾数数值为7位,阶码以2为底,阶码和尾数均用补码表示。它所能表示的最大整数是多少?最小规格化正数是多少?绝对值最大负数是多少?
2-12某浮点数字长为16位,其中阶码分为6位(含1位阶符),移码表示,以2为底;尾数部分为10位(含1位数符,位于尾数最高位),补码表示,规格化。分别写出下列情况的二进制代码与十进制真值。
(1)非零最小正数; (2)最大正数
(3)绝对值最小负数; (4)绝对值最大负数
2-13一浮点数,器阶码部分分为p位,尾数部分分为q位,各包含1位符号位,均用补码表示;尾数基数r=2,该浮点数格式所能表示数的上限、下限及非零的最小正数是多少?写出表达式。
2-14若上题尾数基数r=16,按上述要求写出表达式。
2-15某浮点数字长为32位,格式如下。其中阶码部分为8位,以2为底,移码表示;尾数部分一共24位(含1位数符),补码表示。现有一浮点代码为(8C5A3E00)16,试写出它能表示的十进制真值。
0 7 8 9 31
阶码 数符 尾数 |
解:(8C5A3E00)16 =1000 1100 0100 1010 0011 1110 0000 0000B
符号位=1
阶码=00011000
尾数=10110100011111000000000
0.10110100011111*2^12=(101101000111.11)2=(2887.75)10
2-16试将(-0.1101)2用IEEE短浮点数格式表示出来。
解:0.1101=1.101*2^-1
符号位=1;
阶码=127-1=126
1,01111110,10100000000000000000000
结果=BF500000H
2-17将下列十进制数转换为IEEE短浮点数:
(1)28.75; (2) 624; (3) -0.625;
(4)+0.0; (5)-1000.5。
解:(1)28.75=11100.11=1.110011*2^4
符号位=0
阶码=127+4=131
0,10000011,11001100000000000000000
结果=41E60000H
(2)624=1001110000=1.001110000*2^9
符号位=0
阶码=127+9=136
0,10001000,0011100000000000000000
结果=441C0000H
(3)-0.625=-0.101=-1.01*2^-1
符号位=1
阶码=127-1=126
1,10001000,00111000000000000000000
结果=BF200000H
(4)+0.0
结果=00000000H
(5)-1000.5=1111101000.1=1.1111010001*2^9
符号位=1
阶码=127+9=136
1,10001000,11110100010000000000000
2-18将下列IEEE短浮点数转换为十进制数:
(1)11000000 11110000 00000000 00000000
(2)00111111 00010000 00000000 00000000
(3)01000011 10011001 00000000 00000000
(4)01000000 00000000 00000000 00000000
(5)01000001 00100000 00000000 00000000
(6)00000000 00000000 00000000 00000000
解:
(1)1,10000001,111 00000000000000000000
符号位=1
阶码=129-127=2
1.111*2^2=111.1B=7.5
所以结果=-7.5
(2)0,01111110,00100000000000000000000
符号位=0
阶码=126-127=-1
1.001*2^-1=0.1001B=0.5625
所以结果=0.5625
(3)0,10000111,00110010000000000000000
符号位=0
阶码=135-127=8
1.0011001*2^8=100110010B=306
所以结果=306
(4)0,10000000,0000000 00000000 00000000
符号位=0
阶码=128-127=1
1.0*2=10B=2
所以结果=2
(5)0,10000010,01000000000000000000000
符号位=0
阶码=130-127=3
1.01*2^3=1010B=10
所以结果=10
(6)00000000 00000000 00000000 00000000
阶码和尾数都等于0,所以结果也等于0
2-19对下列ASCII码进行译码。
1001001,0100001,1100001,1110111
1000101,1010000,1010111,0100100
解:译码结果分别为:I,!,a,w,E,P,W,$
2-20以下列形式表示(5382)10.
(1)8421码; (2)余3码; (3)2421码; (4)二进制数
解:
8421码:0110 0011 1000 0010
余3码:1000 0110 1011 0101
2421码:1011 0011 1110 0010
二进制:1010100000110
2-21填写下列代码的奇偶校验位,现设为奇校验。
1 0 1 0 0 0 0 1
0 0 0 1 1 0 0 1
0 1 0 0 1 1 1 0
解:1 0 1 0 0 00 1的奇偶校验位是0
0 0 0 1 1 0 0 1的奇偶校验为位是0
0 1 0 0 1 1 1 0的奇偶校验位是1