2016-11-18 1 views

Antwort

-1

Meist int 32 Bit hat, während char nur 8 Bit. Wenn Sie int in char umwandeln, werfen Sie die restlichen 24 Bits weg. Das Ergebnis ist nicht definiert.

+2

Das Ergebnis ist definiert, implementierungsdefiniert. – 2501

+0

Nein, du liegst falsch, was ist, wenn du die Konstante änderst? Wir könnten auch negative Zeichen bekommen. Ich sagte, dass es nicht definiert ist, da die Ausgabe nichts mit der Eingabe zu tun hat. Aber du kannst es berechnen. –

+0

Vergessen Sie außerdem nicht die Endian-Byte-Reihenfolge. Sie wissen nicht, welche Plattformen Sie ausführen. Big-Endian und Little-Endian werden zu unterschiedlichen Antworten führen. –

0

i definiert ist int (32 Bits) der Wert in binär 65537 = 10000000000000001 wenn c = (char) i der Wert abgeschnitten wird, weil C in 8 Bits ist so c c = 00000001 so c = 1

+2

Das ist nur eine Möglichkeit, es zu implementieren. Das Ergebnis kann anders sein. – 2501