Ausgabe:
-1 2 2
Bitte erläutern Sie die Ausgabe des Programms?
Vermutlich ist die einzige merkwürdige Ausgabe die erste.
Nun, betrachte den Wertebereich, den eine 1-Bit Zweierkomplement Ganzzahl darstellen kann.
bit1
ist eine vorzeichenbehaftete 1-Bit-Ganzzahl, die nur die Werte -1
und 0
enthalten kann.
Beachten Sie die folgende Aussage die Struktur:
int bit1: 1; - & gt; 'int' zeigt an dass es eine SIGNIERTE Ganzzahl ist. Für Ganzzahlen mit Vorzeichen wird das linke Bit als Vorzeichen verwendet. Wenn Sie 1 in 1-Bit-Feld speichern: Das linke Bit ist 1, also das System behandelt den Wert als negative Zahl.
Die Zweierkomplement-Methode ist vom System verwendet, um die negative Werte.
Daher sind die gespeicherten Daten 1. Das Zweierkomplement von 1 ist ebenfalls 1 (negativ).
Daher wird -1 gedruckt.
Wenn Sie ein 2-in-4-Bit-Feld speichern: Binary 2: 0010 (das letzte Bit ist 0, Das System wird es als positiven Wert behandeln.) 0010 ist 2 Daher wird 2 gedruckt.
Tags und Links c