Wie rechnet man eine Dezimalzahl in ein BCD-Wert (Binary Coded Decimal Codes) um?
Dabei geht es um die Dezimalzahlen 1 bis 7. Ich weiß zumindest, dass der BCD-Wert 3 Binärstellen hat. Gibt es dafür einen einfachen Rechenweg? Ich versuche schon seit Stunden verschiedenste Rechenwege, aber ich komme einfach nicht drauf und im Internet findet sich auch nichts verständliches. Danke im voraus.
2 Antworten
Ist BCD "ganz normales" Binär?
ok:
Du nimmst deine Zahl: zum Beispiel 7:
7 geteilt durch 2 gibt 3 mit Rest 1
3 geteilt durch 2 gibt 1 mit Rest 1
1 geteilt durch 2 gibt 0 mit Rest 1
0 geteilt durch 2 gibt 0 mit Rest 0
das würde so ja unendlich weitergehen mit den Nullen, das zeigt dass du fertig bist.
jetzt von unten nach oben lesen: 0111 die nullen von links kannst du weglassen. also 7 dec = 111 binär
Pro Ziffer brauchst Du 4 Bit. Also kannst Du zwei Ziffern in 8 Bit unterbringen, 4 Ziffern in 16 Bit usw.
Also wird ziffernweise nach binär codiert, und das dann eben der Reihe nach in die Ausgabebytes geschrieben. Es müsste dann nur noch eine Vorgabe her, ob "von unten nach oben" oder "von oben nach unten" zu codieren ist.
Beispiel: Eingabe 95 nach BCD in 8 Bit:
9 -> 1001
5 -> 0101
Wenn "oben nach unten", Ausgabebyte: 1001 0101
Wenn "unten nach oben", Ausgabebyte: 0101 1001
Danke für die Antwort. Aber meine Frage ist wie ich zum Beispiel bei der 5 auf die Binärzahlen "0101" komme. Wie kann man die ausrechnen?
Die Binärstellen entsprechen der Wertigkeit 1,2,4,8 .. oder allgemein der Binärdarstellung folgend: 2^0, 2^1, 2^2, 2^3 ... Ist also exakt genauso wie im Dezimalsystem, nur daß ich nur zwei Zustände je Stelle habe: 10^0, 10^1, 10^2 usw. usf. .
Ich denke schon