> bcd | desimal | binær <

// BCD - binærkodet desimal for presis desimalaritmetikk

0 tegn
0 tegn
[DECIMAL]

Desimalpresisjon

Bevarer desimalpresisjon og unngår avrundingsfeil i binær representasjon.

[4-BIT]

Nibble-koding

Hvert desimalsiffer kodes i nøyaktig 4 biter (én nibble).

[VARIANTS]

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 klokke­kretser
  • >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

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ø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.

Andre språk