Pereiti prie turinio

Dvejetainis-dešimtainis kodas

Straipsnis iš Vikipedijos, laisvosios enciklopedijos.

Dvejetainis-dešimtainis kodas (angl. binary coded decimal) yra tarpinė tarp dvejetainės ir dešimtainės kodavimo sistema, kurioje kiekvienas dešimtainis skaitmuo koduojamas savo atskira dvejetaine seka. Pavyzdžiui, skaičius 16 dvejetaine sistema koduojamas kaip 10000 o dvejetaine - dešimtaine sistema kaip 0001 0110. Šiuo formatu galima koduoti ir dešimtaines trupmenas, arba skiriant kableliui papildomą derinį ar tiesiog sutariant kur yra įsivaizduojama kablelio vieta. Skaitmenims nuo 0 iki 9 užkoduoti reikia ne mažiau kaip 4 bitų (lieka penki nepanaudoti deriniai). Todėl jį paprasčiausia naudoti keturių bitų įrenginiuose (pavyzdžiui, 74181). Aštuonių bitų procesoriuose į vieną žodį galima sutalpinti du tokius skaitmenis (angl. packed) arba tiesiog naudoti tik keturis bitus iš aštuonių (angl. zoned).

Pagrindinis šio kodo privalumas - paprastas vertimas iš bei į dešimtainę sistemą. Tačiau šis kodas mažiau ekonomiškas - dvejetainėje sistemoje į keturis bitus galima sutalpinti skaičius nuo 0 iki 15. Dvejetainis-dešimtainis kodas buvo plačiau naudojamas pirmuosiuose kompiuteriuose. Šiuo metu jis daug mažiau paplitęs tačiau naudojamas jei skaičiuojant dvejetaine sistema galimos vertimo ar apvalinimo klaidos[1]. Kai kurios dešimtainės trupmenos dvejetaine sistema gali būti užrašomos tik kaip begalinės trupmenos (pavyzdžiui, 0,2 dvejetainėje sistemoje yra begalinė trupmena 0,001100110011 ...). Todėl, jei būtina skaičiuoti absoliučiai tiksliai (pavyzdžiui, finansuose), dvejetainė - dešimtainė sistema tinka geriau nei dvejetainė. Dvejetainėje - dešimtainėje sistemoje taip pat paprasta padauginti ar padalinti iš dešimties.

Dvejetainis-dešimtainis kodas vis dar paplitęs elektroniniuose laikrodžiuose, skaitikliuose bei kitose paprastose sistemose kur nėra mikroprocesoriaus, nes tokį kodą paprasčiau atvaizduoti skaitmeniniu indikatoriumi: kiekvieną keturių bitų skiltį galima tiesiogiai sujungti su dešimtaine indikatoriaus skiltimi. Kartais pasitaiko ir tiesiogiai kodą rodančių laikrodžių.

1972 šį kodą buvo bandoma užpatentuoti tačiau patentas buvo atmestas.[2]. Tai buvo svarbus įvykis sprendžiant ar kodai bei algoritmai gali būti patentuojami.

  1. „General Decimal Arithmetic“.
  2. "GOTTSCHALK v. BENSON, 409 U.S. 63 (1972)"