壓縮BCD碼分為有權碼和無權碼。有權碼是以不同的權值關係進行編碼,所以,有權碼可以按權展開求和得到等值十進制數如:8421(最常用)、2421、5421…;無權碼如:餘3碼、格雷碼…則沒有這種換算方式。
即一個位元組存放兩個十進制數位,壓縮BCD碼比非壓縮的BCD碼更節省存儲空間,也便於直接完成十進制的算術運算,是彙編中廣泛採用的理想方法。
用壓縮的十進制數串表示一個數,它要占用主存連續的多個位元組。每個數位占用半個位元組(4個二進制位),其值也用二-->十進制編碼(BCD碼)或數字元的ASCII碼的低4位表示。符號位也占用裝修位元組並放在最低數字位之後。其值選用四位編碼中六種冗餘狀態中的有關值,如用12(C)表示正號,13(D)表示負號。例如+56和-35表示為:
0 | 5 | 6 | 12 |
0 | 3 | 5 | 13 |
壓縮BCD碼多用於彙編語言中。現在的電腦程式一般會由高級語言編寫,一般在編寫過程中不會具體體現BCD碼。
還有一點,壓縮BCD碼在低階的編程中很有用,舉例如要寫一個十進制為96的碼制,用壓縮BCD碼為1001 0110,而用非壓縮的BCD碼就是00001001 00000110,在寫程式時就不好辨認。