Kod BCD
Kod BCD (ang. binary-coded decimal, czyli zapis dziesiętny kodowany dwójkowo[1] lub kod dwójkowo-dziesiętny[2]) – sposób zapisu liczby polegający na zakodowaniu kolejnych cyfr dziesiętnych tej liczby w systemie dwójkowym, przy użyciu tylko czterech młodszych bitów (zob. półbajt)[2]. Stosowany jest on głównie w elektronice i informatyce. Taki zapis pozwala na łatwą konwersję liczby do i z systemu dziesiętnego, jednak jego niedogodnością jest istniejąca nadmiarowość (wykorzystuje tylko 10 czterobitowych kombinacji z 16 możliwych).
Kod BCD jest obecnie stosowany głównie w urządzeniach elektronicznych z wyświetlaczem cyfrowym (np. w kalkulatorach, miernikach cyfrowych) i w zastosowaniach finansowych informatyki (ujednoznacznia zapis części ułamkowych kwot i ułatwia dziesiętne zaokrąglanie).
We współczesnych komputerach używane są dwa sposoby zapisu liczb w kodzie BCD na ośmiobitowych bajtach (zob. oktet):
- użycie tylko czterech najmłodszych bitów do zapisu pojedynczej cyfry[1]; 4 starsze są wtedy ustawiane na jakąś konkretną wartość (np. 1111 jak w EBCDIC, 0011 jak w ASCII, czy 0000),
- zapis dwóch cyfr w każdym bajcie (bardziej znacząca w starszym półbajcie, a mniej znacząca w młodszym); jest to tak zwane spakowane BCD[1] (ang. packed BCD).
Wiele mikroprocesorów (w tym wszystkie wywodzące się od Intel 8080[3]) posiada rozkazy i tak zwane flagi umożliwiające dodawanie i odejmowanie liczb BCD w wersji spakowanej[2].
Warianty kodu
edytujZ zależności od zastosowania, poszczególne cyfry mogą być kodowane w inny niż dwójkowo sposób, stąd rozróżnia się wiele wariantów BCD (dla uściślenia wersja podstawowa zwana jest też BCD 8421 lub NBCD):
| BCD Excess-3 BCD BCD IBM 1401 | Wagi: 8421 2421 84-2-1 8421 ------------------------------------------------- 0 | 0000 0011 0000 0000 1010 1 | 0001 0100 0001 0111 0001 2 | 0010 0101 0010 0110 0010 3 | 0011 0110 0011 0101 0011 4 | 0100 0111 0100 0100 0100 5 | 0101 1000 1011 1011 0101 6 | 0110 1001 1100 1010 0110 7 | 0111 1010 1101 1001 0111 8 | 1000 1011 1110 1000 1000 9 | 1001 1100 1111 1111 1001
Przykładowo, liczba 127 w podstawowym wariancie BCD wygląda następująco:
0001 0010 0111
Przypisy
edytuj- ↑ a b c Syck 1994 ↓, s. 116.
- ↑ a b c Markowski, Rydzewski i Kruszyński 1989 ↓, s. 30.
- ↑ Syck 1994 ↓, s. 116-117.
Bibliografia
edytuj- Gary Syck , Turbo Assembler®. Biblia użytkownika, Warszawa: LT&P, 1994, ISBN 83-901237-2-X .
- Andrzej Markowski , Andrzej Rydzewski , Henryk Kruszyński , Leksykon techniki mikrokomputerowej, Warszawa: Wydawnictwo Czasopism i Książek Technicznych Sigma-NOT, 1989 (Mikrokomputery), ISBN 83-85001-28-X .