O1 A. schrieb:
> also CHR & 0x80
>
> wenn 1 dann mach das
und das mag zwar intuitiv sein, führt aber trotzdem des öfteren in die
Sackgasse, aus der Neulinge nicht mehr alleine herauskommen.
Besser ist die sichtweise
wenn ungleich 0, dann mach etwas
wenn 0, dann mach etwas anderes.
Diese Siecht der Dinge solltest du dir generell angewöhnen. Erspart dir
viel Frust.
Und als nächstes lernst du die Tabelle der Hex-Digits und ihre
zugehörigen Bitmuster auswendig
Hex Dezimal Binär Hex Dezimal Binär
0 0 0000 8 8 1000
1 1 0001 9 9 1001
2 2 0010 A 10 1010
3 3 0011 B 11 1011
4 4 0100 C 12 1100
5 5 0101 D 13 1101
6 6 0110 E 14 1110
7 7 0111 F 15 1111
Eine Hex-Zahl wie 0x8A sind dann einfach die Bitmuster für 8 und für A
aneinandergereiht. 0x8A ist also auf Bitebene 10001010
Wenn du µC programmieren willst, dann kennt man diese Tabelle auswendig,
weil man viel mit Hex-Zahlen und ihrer Bitrepräsentierung zu tun hat.
Hinweis: Die Tabelle ist nicht wirklich schwer zu lernen. Da gibt es ein
paar Zusammenhänge
* Alle ungeraden Zahlen haben an der letzten Stelle binär eine 1
* Alles über/gleich 8 hat an der ersten Stelle eine 1
* 7 und F merkt man sich leicht. Das eine ist 0111, das andere 1111
* Auch die 2-er Potenzen 1, 2, 4, 8 sind simpel. Nur 1 einziges
1 Bit, welches immer um 1 Stelle nach links wandert
0001 0010 0100 1000
* A, also dezimal 10, hat das Bitmuster '2 mal 10', also 1010
* und den Rest dazwischen kann man leicht im Kopf durch weiterzählen
einer der besonderen vorhergehenden Zahlen bestimmen.