Wird einem char eine Zahl zugewiesen, so entspricht dies nicht der binären Darstellung !
int a = 16 0001 0000
char b = ‚16′ 0011 0001 0011 0110 sind zwei Ascii-Zeichen
char c = ‚1‘ 0011 0001
char d = ‚6‘ 0011 0110
int d = 6 0000 0110
Lösung
char c = ‚1‘ – ‚0‘ 0000 0001
Will man einen Char, der die Zahl binär darstellt, so muss man den char-Wert ‚0‘ abziehen. Die Hochkommas sind zwingend, da sonst ein Typcast (zu int) vollzogen wird.