Binærkodet desimal

Binærkodet desimal ( BCD ) -koding er en ofte brukt måte i databehandling og elektronikk for å representere desimalsifre i binær kode , som delvis utnytter base 2 til base 16 konvertibilitet .

I dette formatet er hvert siffer i et desimaltall representert som for et grunntall 16 med en fire - bits binær kode , hvis verdi er mellom 0 (0000) og 9 (1001). De resterende seks sifrene i base 16 kan brukes til å representere symboler. For eksempel er tallet 127 representert i BCD som 0001, 0010, 0111.

Selv om BCD innebærer en betydelig sløsing med biter (omtrent 1/6 av ubrukt minne i pakket BCD), er det i noen tilfeller å foretrekke fordi det har en direkte samsvar med ASCII -koden . Faktisk er det tilstrekkelig å legge til 0011 på toppen av de fire bitene for å få den tilsvarende ASCII.

I tillegg, hvis resultatet overstiger 9 (1001), legges 6 (0110) til, det vil si mengden ubrukte kodinger (fra 1010 til 1111).

Siden datamaskiner lagrer data i byte , på åtte biter, er det med denne kodingen mulig å lagre ett siffer per byte og fylle de resterende fire ledende bitene med nuller eller enere (som i EBCDIC -koden ), eller sette to siffer per byte, kalt moduspakket BCD .

Tall i BCD-pakket notasjon slutter vanligvis med en tegnkode, vanligvis 1100 for + og 1101 for minus. Tallet 127 er representert av 11110001, 11110010, 11110111 i EBCDIC og 00010010, 01111100 i pakket BCD.

BCD-koden er mye brukt i elektronikk, spesielt i digitale kretser uten mikroprosessor , fordi den letter visualiseringen av lange sifre på skjermer med syv segmenter . Faktisk tilsvarer hver fysisk visning nøyaktig ett siffer. Det er spesielle integrerte kretser som utfører konverteringen fra BCD i den tilsvarende tenningssekvensen av segmentene. Selv utførelse av enkle aritmetiske beregninger er lettere å utføre på BCD-sifre for kombinasjonslogiske kretser.

PC - BIOS lagrer dato og klokkeslett i BCD; dette skjer antagelig av historiske årsaker, tatt i betraktning at i noen nyere systemer er året representert annerledes for å avhjelpe Millennium-feilen .

IBM og BCD

IBM bruker begrepet binærkodet desimal eller BCD for en proprietær seks-bits alfanumerisk kode (base 64: 2 ^ 6), som representerer tall, store alfabetiske bokstaver og andre spesialtegn.

I de første IBM-datamaskinene (IBM 1620, IBM 1400-serien og ikke-desimale enheter i IBM 700/7000-serien) ble flere varianter av BCD tatt i bruk. Med introduksjonen av System / 360 erstattet IBM BCD med den åtte-biters EBCDIC-koden.

Bitposisjoner i IBM BCD-kode er vanligvis merket med B, A, 8, 4, 2, 1 . A og B er null når et numerisk siffer er kodet.

I BCD 1062 ble alfabetiske tegn kodet ved å bruke partallsbiter i bitpar, og ved å bruke oddebiter for sifre. Spesiell maskinvare konvertert mellom denne interne kodingen og seks-bits BCD-kode brukt eksternt.

Oppsummerer

Følgende tabell oppsummerer kodingen av sifrene fra null til ni av noen BCD-systemer.

For klarhetens skyld kalles standard BCD som er beskrevet i begynnelsen av artikkelen Simple Binary-Coded Decimal ( SBCD ) eller BCD 8421 , hvor 8421 indikerer vekten av bitene.

Figur SBCD
8421
Overskudd-3 BCD
2421
BCD
84-2-1
IBM 1401
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

Lov

I 1972 omgjorde USAs høyesterett en avgjørelse fra en mindre domstol som autoriserte et patent for konvertering av BCD til binær (Gottschalk v. Benson). [1] Det er en interessant sak i den komplekse debatten om hvorvidt man skal gi programvarepatenter eller ikke .

Merknader

  1. ^ http://caselaw.lp.findlaw.com/scripts/printer_friendly.pl?page=us/409/63.html

Relaterte elementer