Schreiben Sie ein Programm, welches die rechnerinterne, binäre Darstellung einer Integer-Zahl (Typ: int) auf dem Bildschirm ausgibt.
Hinweis: Ermitteln Sie zuerst das Vorzeichen und dann sukzessive alle anderen Bits.
Die bitweise UND-Verknüpfung (UND-Verknüpfungen: 1&1 = 1, 1&0 = 0&1 = 0&0 = 0) i & 32 liefert einen Wert ungleich Null, falls das fünfte Bit in i gesetzt ist.
z.B. i = 44 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 | 25 + 23 + 22 = 44 & 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 | 24 = 16 -----------------------------------+------------------- = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | = 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 0 | 25 + 23 + 22 = 44 & 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 | 25 = 32 -----------------------------------+------------------- = 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 | = 32
/* Header-Datei einbinden */ #include <stdio.h> int main(void) /* hier beginnt das Hauptprogramm */ { int zahl; /* Variable vom Typ int für die Zahl */ int i; /* Variable vom Typ int für den Zähler */ int pot; /* Variable vom Typ int für die Potenz */ printf("Bitte eine Zahl eingeben: "); scanf("%d",&zahl); /* Eingabe vom Benutzer */ printf("%d in binärer Form = ",zahl); /* Integerwert normal ausgeben */ if (zahl < 0) /* Zahl kleiner 0, dann ist das erste Bit 1 sonst 0 */ printf("1"); else printf("0"); pot = 16384; /* 2 hoch 14 */ for (i = 14; i >= 0; i--) /* von Bit 14 bis Bit 0 rückwärts durchgehen */ { if (zahl & pot) /* ist das Bit gesetzt, dann "1" ausgeben */ printf("1"); else /* sonst "0" ausgeben */ printf("0"); pot /= 2; /* Potenz = Potenz / 2 -> wird für den nächsten Durchlauf benötigt */ } printf("\n"); /* am Ende noch ein "\n" senden */ return(0); /* Das Hauptprogramm gibt am Ende 0 zurück, da kein Fehler aufgetreten ist. */ }