Kod BCD

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Dwa zegary pokazujące ten sam czas, po prawej wskazanie w BCD8421, od lewej do prawej godziny (dziesiątki i jednostki), minuty (d. i j.) i sekundy (d. i j.); dziesiątki godzin kodowane są tylko dwoma najmłodszymi bitami (wskazanie nigdy nie jest większe od 2), a minut i sekund trzema najmłodszymi (wskazanie nigdy nie jest większe od 5)

BCD (ang. Binary-Coded Decimal czyli dziesiętny zakodowany dwójkowo) – 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. 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 układów 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 BCD na ośmiobitowych bajtach:

  • użycie czterech najmłodszych bitów, 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 (starsza na starszej jego połówce, a młodsza na młodszej), jest to tak zwane spakowane BCD.

Wiele mikroprocesorów (w tym wszystkie wywodzące się od Intel 8080) posiada rozkazy umożliwiające dodawanie i odejmowanie liczb BCD w wersji spakowanej.

Warianty[edytuj | edytuj kod]

Czasami poszczególne cyfry są kodowane w inny niż dwójkowo sposób, stąd inne warianty 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 tak:

0001 0010 0111

Zobacz też[edytuj | edytuj kod]