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.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage