Wie funktioniert die Zuweisung von int zu char in C?
Was passiert, wenn Sie einem Zeichen in C ein int zuweisen? Ignoriert es immer nur die zusätzlichen Bits auf der linken Seite?
Beispiel (4 Bytes int):
unsigned char c = 0;
unsigned int i = 500;
c = i; // c is 244
c = i << 24 >> 24; //c is 244
i = i << 24 >> 24; //i is 244
In binären,500
ist111110100
und244
ist11110100
.