K |
(→Siehe auch) |
||
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt) | |||
Zeile 27: | Zeile 27: | ||
=Umrechnung= | =Umrechnung= | ||
+ | Umrechnung für eine zweistellige Zahl x von 0...99: | ||
x_bcd = 16*(x div 10) + (x mod 10) | x_bcd = 16*(x div 10) + (x mod 10) | ||
x = 10*(x_bcd div 16) + (x_bcd mod 16) | x = 10*(x_bcd div 16) + (x_bcd mod 16) | ||
− | Dabei steht <tt>div</tt> für Ganzzahl-Division und <tt>mod</tt> für den Rest der Division (modulo). | + | Dabei steht <tt>div</tt> für Ganzzahl-Division und <tt>mod</tt> für den Rest der Division (modulo). Allgemein: |
+ | |||
+ | <math> | ||
+ | x_{\mathrm{bcd}} = \sum_{n=0}^\infty 16^n \cdot ((x \,\operatorname{mod} \,10^{n+1}) \,\operatorname{div} \,10^n) | ||
+ | </math> | ||
+ | |||
+ | |||
+ | <math> | ||
+ | |||
+ | x = \sum_{n=0}^\infty 10^n \cdot ((x_{\mathrm{bcd}} \,\operatorname{mod} \,16^{n+1}) \,\operatorname{div} \,16^n) | ||
+ | </math> | ||
+ | |||
+ | =Siehe auch= | ||
+ | * [[avr-gcc#libgcc2 verwenden|C-Code Beispiel für BCD-Umrechnung mit avr-gcc]] | ||
[[Kategorie:Abkürzung]] | [[Kategorie:Abkürzung]] | ||
[[Kategorie:Grundlagen]] | [[Kategorie:Grundlagen]] |
Aktuelle Version vom 4. Januar 2006, 10:44 Uhr
BCD steht für "binary coded decimal" bzw. "binär codierte Dezimalzahl".
Bei der BCD-Codierung wird nicht die ganze Zahl binär dargestellt, sondern nur die einzelnen Ziffern werden binär dargestellt.
Beispiel:
Die Zahl 35 hat die BCD-Darstellung 0011 0101bcd
dezimal | BCD (binär) | BCD (hex) | binär | hex |
---|---|---|---|---|
35 | 0011 0101 | 35 | 0010 0011 | 23 |
BCD-Zahlen, die man in hex notiert, sehen also genauso aus wie die Zahl in Dezimaldarstellung.
Zu beachten ist, daß für Zahlen in BCD-Notation andere Rechenregeln gelten. Manche Rechner unterstützen auch das Rechnen mit BCD-Zahlen.
Beispiel:
- Dezimal
- 39+1 = 40
- BCD-Darstellung
- 39h+1 = 40h. Umgerechnet nach Dezimal wird das zu 57+1 = 64
Umrechnung
Umrechnung für eine zweistellige Zahl x von 0...99:
x_bcd = 16*(x div 10) + (x mod 10)
x = 10*(x_bcd div 16) + (x_bcd mod 16)
Dabei steht div für Ganzzahl-Division und mod für den Rest der Division (modulo). Allgemein:
[math] x_{\mathrm{bcd}} = \sum_{n=0}^\infty 16^n \cdot ((x \,\operatorname{mod} \,10^{n+1}) \,\operatorname{div} \,10^n) [/math]
[math]
x = \sum_{n=0}^\infty 10^n \cdot ((x_{\mathrm{bcd}} \,\operatorname{mod} \,16^{n+1}) \,\operatorname{div} \,16^n)
[/math]