> bcd | decimal | binær <

// BCD - binærkodet decimal til præcis decimalaritmetik

0 tegn
0 tegn
[DECIMAL]

Decimalpræcision

Bevarer decimalpræcision og undgår afrundingsfejl i binær repræsentation.

[4-BIT]

Nibble-kodning

Hvert decimaltciffer kodes i præcis 4 bit (én nibble).

[VARIANTS]

Flere formater

Understøtter 8421, 2421, 5421, Excess-3 og Gray BCD.

>> teknisk info

Sådan fungerer BCD:

BCD koder hvert decimaltciffer (0–9) til 4 binære bit. Forskellige BCD-formater bruger forskellige bitvægte: 8421 (standard), 2421 (selvkomplementerende), 5421 (bi-kvinar), Excess-3 (lægger 3 til hvert ciffer) og Gray BCD (minimerer bitovergange). Pakket BCD gemmer to cifre pr. byte for bedre effektivitet.

Eksempel på BCD-formater:

Decimal: 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 bruge BCD:

  • >Finansielle beregninger der kræver nøjagtig decimalrepræsentation
  • >Digitale displays og 7-segment-dekodere
  • >Real-time clock-kredsløb
  • >Lommeregnere og regnechips
  • >PLC- og industrielle styresystemer

>> ofte stillede spørgsmål

Hvad er BCD?

BCD (Binary-Coded Decimal) er en binær kodning af decimaltal, hvor hvert decimaltciffer repræsenteres af sin 4-bit binære værdi. Det bruges, når decimalpræcision er afgørende.

Hvorfor bruge BCD i stedet for binær?

BCD undgår afrundingsfejl i decimale beregninger og gør det nemmere at vise værdier direkte i decimalform på displays. Det er ideelt til finansielle applikationer, hvor præcise decimalresultater er nødvendige.

Hvad er pakket BCD?

Pakket BCD gemmer to decimale cifre i én byte (8 bit), hvor hver nibble repræsenterer et ciffer. Det er mere pladsbesparende end upakket BCD, som bruger en hel byte pr. ciffer.

Hvilke BCD-formater findes der?

Almindelige BCD-formater omfatter: 8421 (standard vægtet), 2421 (selvkomplementerende), 5421 (bi-kvinar), Excess-3 (hver ciffer +3) og Gray BCD (minimerer bitændringer mellem efterfølgende værdier).

// Hurtig reference

Dec84212421Excess-3
0000000000011
1000100010100
2001000100101
3001100110110
4010001000111
5010110111000
6011011001001
7011111011010
8100011101011
9100111111100

// 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ørgsmål

S: Hvad er BCD, og hvordan adskiller det sig fra binært?

S: I BCD kodes hvert decimalciffer for sig med 4 bit. 25 bliver 0010 0101, mens rent binært giver 11001. Decimale værdier forbliver nøjagtige og er lette at vise.

S: Hvad er pakket og upakket BCD?

S: Pakket BCD gemmer to cifre pr. byte (0x25 = 25). Upakket bruger én byte pr. ciffer; den øverste nibble er 0 eller en zonemarkør som i EBCDIC.

S: Hvorfor bruges BCD stadig?

S: Til præcis decimalaritmetik uden afrundingsfejl: finanssystemer, lommeregnere, realtidsure og 7-segmentdisplays. Prisen: 4 bit pr. ciffer i stedet for 3,32, cirka 20 % mere plads.

Andre sprog