> bcd | decimal | binär <

// BCD - binärkodad decimal för exakt decimalaritmetik

0 tecken
0 tecken
[DECIMAL]

Decimalnoggrannhet

Bevarar decimalnoggrannhet och undviker avrundningsfel från binär representation.

[4-BIT]

Nibble-kodning

Varje decimalsiffra kodas i exakt 4 bitar (en nibble).

[VARIANTS]

Flera format

Stöd för BCD-formaten 8421, 2421, 5421, Excess-3 och Gray BCD.

>> teknisk information

Hur BCD fungerar:

BCD kodar varje decimalsiffra (0–9) till 4 binära bitar. Olika BCD-format använder olika bitvikter: 8421 (standard), 2421 (självkompletterande), 5421 (bi‑kvinar), Excess‑3 (lägger till 3 till varje siffra) och Gray BCD (minimerar bitövergångar). Packad BCD lagrar två siffror per byte för högre effektivitet.

Exempel på BCD-format:

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

Packad:    10010101 00110000
           (95)     (30)

Varför använda BCD:

  • >Finansiella beräkningar som kräver exakt decimalrepresentation
  • >Digitala displayer och sju‑segment‑avkodare
  • >Real‑tids‑klockkretsar
  • >Miniräknare och beräkningskretsar
  • >PLC:er och industriella styrsystem

>> vanliga frågor

Vad är BCD?

BCD (Binary-Coded Decimal) är en binär kodning av decimala tal där varje decimalsiffra representeras av sitt 4‑bits binära värde. Den används när decimalnoggrannhet är särskilt viktig.

Varför använda BCD i stället för ren binär?

BCD undviker avrundningsfel i decimala beräkningar och gör det enklare att visa värden direkt i decimal form. Det passar särskilt bra i finansiella applikationer där exakta decimalresultat krävs.

Vad är packad BCD?

Packad BCD lagrar två decimalsiffror i en enda byte (8 bitar), där varje nibble representerar en siffra. Det är mer utrymmeseffektivt än opackad BCD som använder en hel byte per siffra.

Vilka BCD-format finns?

Vanliga BCD-format är: 8421 (standardviktat), 2421 (självkompletterande), 5421 (bi‑kvinar), Excess‑3 (varje siffra +3) och Gray BCD (minimerar bitändringar mellan efterföljande värden).

// Snabbreferens

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

// Kodexempel

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

>> Fler frågor

F: Vad är BCD och hur skiljer det sig från binärt?

S: I BCD kodas varje decimal siffra för sig med 4 bitar. 25 blir 0010 0101, medan rent binärt ger 11001. Decimala värden förblir exakta och är lätta att visa.

F: Vad är packad och opackad BCD?

S: Packad BCD lagrar två siffror per byte (0x25 = 25). Opackad använder en byte per siffra; övre nibblen är 0 eller en zonmarkör som i EBCDIC.

F: Varför används BCD fortfarande?

S: För exakt decimal aritmetik utan avrundningsfel: finanssystem, miniräknare, realtidsklockor och 7-segmentsdisplayer. Priset: 4 bitar per siffra i stället för 3,32, cirka 20 % mer utrymme.

Andra språk