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