> bcd | desimal | binær <
// BCD - binærkodet desimal for presis desimalaritmetikk
Desimalpresisjon
Bevarer desimalpresisjon og unngår avrundingsfeil i binær representasjon.
Nibble-koding
Hvert desimalsiffer kodes i nøyaktig 4 biter (én nibble).
Flere formater
Støtter BCD-formatene 8421, 2421, 5421, Excess-3 og Gray BCD.
>> teknisk info
Hvordan BCD fungerer:
BCD koder hvert desimalsiffer (0–9) til 4 binære biter. Ulike BCD-formater bruker ulike bitvekter: 8421 (standard), 2421 (selvkomplementerende), 5421 (bi-kvinar), Excess-3 (legger 3 til hvert siffer) og Gray BCD (minimerer bitoverganger). Pakket BCD lagrer to sifre per byte for bedre effektivitet.
Eksempel på BCD-formater:
Desimal: 9 5 3
8421 BCD: 1001 0101 0011
2421 BCD: 1111 1011 0011
5421 BCD: 1100 1000 0011
Excess-3: 1100 1000 0110
Gray BCD: 1101 0111 0010
Pakket: 10010101 00110000
(95) (30)
Hvorfor bruke BCD:
- >Finansielle beregninger som krever nøyaktig desimalrepresentasjon
- >Digitale skjermer og syvsegment-dekodere
- >Real-time klokkekretser
- >Kalkulatorer og beregningsbrikker
- >PLC-er og industrielle styresystemer
>> vanlige spørsmål
Hva er BCD?
BCD (Binary-Coded Decimal) er en binær koding av desimaltall der hvert desimalsiffer representeres av sin 4-bits binærverdi. Det brukes når desimalpresisjon er avgjørende.
Hvorfor bruke BCD i stedet for ren binær?
BCD hjelper til med å unngå avrundingsfeil i desimalberegninger og gjør det enklere å vise verdier direkte i desimalform. Det er ideelt for finansielle applikasjoner der nøyaktige desimalresultater er nødvendig.
Hva er pakket BCD?
Pakket BCD lagrer to desimale sifre i én byte (8 biter), der hver nibble representerer ett siffer. Det er mer plassbesparende enn upakket BCD, som bruker en hel byte per siffer.
Hvilke BCD-formater finnes?
Vanlige BCD-formater inkluderer: 8421 (standard vektet), 2421 (selvkomplementerende), 5421 (bi-kvinar), Excess-3 (hver siffer +3) og Gray BCD (minimerer bitendringer mellom påfølgende verdier).
// Hurtigreferanse
| Dec | 8421 | 2421 | Excess-3 |
|---|---|---|---|
| 0 | 0000 | 0000 | 0011 |
| 1 | 0001 | 0001 | 0100 |
| 2 | 0010 | 0010 | 0101 |
| 3 | 0011 | 0011 | 0110 |
| 4 | 0100 | 0100 | 0111 |
| 5 | 0101 | 1011 | 1000 |
| 6 | 0110 | 1100 | 1001 |
| 7 | 0111 | 1101 | 1010 |
| 8 | 1000 | 1110 | 1011 |
| 9 | 1001 | 1111 | 1100 |
// Kodeeksempler
Decimal 25 BCD 0010 0101 (packed: 0x25)
Binary 0001 1001 (0x19)
Decimal 1234 BCD 0001 0010 0011 0100 (2 bytes, packed)
Overhead 4 bits per digit vs log2(10) = 3.32 bits -> ~20% larger
Add 0x19 + 0x28 = 0x41 -> +6 correction per nibble > 9 -> 0x47
>> Flere spørsmål
S: Hva er BCD, og hvordan skiller det seg fra binært?
S: I BCD kodes hvert desimalsiffer for seg med 4 bit. 25 blir 0010 0101, mens rent binært gir 11001. Desimale verdier forblir nøyaktige og er enkle å vise.
S: Hva er pakket og upakket BCD?
S: Pakket BCD lagrer to siffer per byte (0x25 = 25). Upakket bruker én byte per siffer; øvre nibble er 0 eller en sonemarkør som i EBCDIC.
S: Hvorfor brukes BCD fortsatt?
S: Til presis desimalaritmetikk uten avrundingsfeil: finanssystemer, kalkulatorer, sanntidsklokker og 7-segmentdisplayer. Prisen: 4 bit per siffer i stedet for 3,32, omtrent 20 % mer plass.