十進制數的其它編碼方法
也有用多于4位基2碼,如用5位、7位、甚至10位基2碼,來表示一個十進制數位的方案。有些屬于無權碼,有些屬于有權碼。表2.11給出4種編碼方案。
表2.11 十進制數位編碼方案
十進位 |
無權碼 |
有權碼 | ||
符號 |
五中取二碼 |
蠕變碼 |
二元五進制碼 5043210 |
獨熱碼 0123456789 |
0 |
11000 |
00000 |
0100001 |
1000000000 |
1 |
00011 |
10000 |
0100010 |
0100000000 |
2 |
00101 |
11000 |
0100100 |
0010000000 |
3 |
00110 |
11100 |
0101000 |
0001000000 |
4 |
01001 |
11110 |
0110000 |
0000100000 |
5 |
01010 |
11111 |
1000001 |
0000010000 |
6 |
01100 |
01111 |
1000010 |
0000001000 |
7 |
10001 |
00111 |
1001000 |
0000000100 |
8 |
10010 |
00011 |
1001000 |
0000000010 |
9 |
10000 |
00001 |
1010000 |
0000000001 |
五中取二碼 (2-out-of-5 Code)使用5位基2碼,并且每個代碼必須包含2個"1"和3個"0",因此提供了一位(或奇數位)檢粗能力。
蠕變碼(Creeping Code)也用5位基2碼,是由一個"1"逐次移位擴展和收縮而形成的,符合格雷碼的編碼規則。
④ 數字串在計算機內的表示與存儲
人們習慣使用10進制數,而在計算機內,采用二進制表示和處理數據更方便。因此,在計算機輸入和輸出數據時,要進行十→二和二→十的進制轉換處理,這是多數應用環境中的實際情況。而在某些特定的應用領域中,如商業統計,其特點是運算簡單而數據量很大,這樣使輸入輸出過程中的進制轉換所占的時間比例很大。從提高機器的運行效率考慮,也可以采用在計算機內部直接用十進制方式表示和處理數據,這要求計算機內部增加少量硬件線路。目前,大多數通用性較強的計算機,都能直接處理十進制形式表示的數值。采用十進制表示數據的另一個目的,是提高數據的表示范圍和運算精度,就是說,十進制數在計算機內是以十進制的數位組成的數串形式存儲與計算的,其位數,即串長是可變的,可規定最長可用位數,因此不受二進制整數和浮點數統一格式的約束。
十進制數串在計算機內主要有兩種表示形式。
a. 字符串形式,即一個字節存放一個十進制的數位或符號位。在主存中,這樣的一個十進制數占用連續的多個字節,故為了指明這樣一個數,需要給出該數在主存中的起始地址和位數(串的長度)。
對用這種方式表示的數據進行算術運算是很不方便的,因為每個數字符占用一個字節,其低四位的值表示數值,而高四位的值在進行算術運算時不具有數值的意義。因此,用這種方式表示的十進制字符串,主要用在非數值計算的有關應用領域中。
b. 壓縮的十進制數串形式,即一個字節存放兩個十進制的數位,它比前一種形式節省存儲空間,又便于直接完成十進制數的算術運算,是廣泛采用的較為理想的方法。
用壓縮的十進制數串表示一個數,要占用主存連續的多個字節,每個數位占用半個字節(即4個二進制位),其值可用二-十進制編碼(BCD碼,數字符的ASCII碼的低4位)表示,符號位也占用半個字節并存放在最低數字位之后,其值選用四位編碼的六種冗余狀態中的有關值,如用1100表示正號,用1101表示負號。在這種表示中,規定數值位加符號位之和必須為偶數,當其和不為偶數時,應在最高數字位之前補一個0。此時,表示一個數要占用該偶數值位的一半那么多個字節。例如:
+123被表示成 123C, -12 被表示成 012D。
要指明一個壓縮的十進制數串,也需給出它在主存中的首地址和數字位個數(不含符號位),又稱位長,位長為0的數其值為0。壓縮的十進制數串表示方法的優點是位長可變,許多機器中規定該長度從0到31,有的甚至更長。
評論
查看更多