Jens wrote:
> Hi Leute,
> ich muß mich im Rahmen eines Projektes genauer mit dem Rechen im
> BCD-Code befassen. Frage kann mir jmd einen Tipp bspw. gutes Buch oder
> einen Link empfehlen.
>
Das lustige daran ist, dass du im Grunde schon dein ganzes Leben
lang in BCD rechnest :-) (OK, nicht dein ganzes Leben lang,
sondern erst seitdem du in die Grundschule gekommen bist)
Ein Byte hat 8 Bit. Das kann man in 2 Teile mit jeweils 4 Bit
unterteilen, den sog. Nibbles. Jedes Nibble kann 16 Zustände
annehmen. Davon werden aber nur 10 Zustände für die Ziffern
0 bis 9 benutzt.
In einem Byte wird also so gezählt
BCD binäre Repräsentierung
00 00000000
01 00000001
02 00000010
03 00000011
04 00000100
05 00000101
06 00000110
07 00000111
08 00001000
09 00001001
10 00010000
11 00010001
12 00010010
......
43 01000011
44 01000100
45 01000101
....
97 10010111
98 10011000
99 10011001
Ende. Mehr geht mit einem Byte nicht.
Jedes Nibble repräsentiert also eine Ziffer von 0 bis 9.
Mit einem Byte kann man also im Grunde das machen, was in
der Grundschule 'Rechnen im Zahlenraum bis 100' heist.
Rechnen mit größeren Zahlen funktioniert genau gleich,
so wie du es in der Grundschule mit Papier und Bleistift
gelernt hast.
Das ist im Grunde schon so ziemlich alles, was man über BCD
wissen muss, um damit was machen zu können.
Für negative Zahlen muss man sich noch was ausdenken. Am einfachsten
ist es, das Äquivalent zum binären 2-er Komplement zu benutzen:
Alle Zahlen größer als zb. 49 sind negative Zahlen, wobei die
99 einer -1 entspricht. -5 + 8 = 3 wird dann zu 95 + 8 = (1)03