Frage zum Programm, dass Dualzahlen binärcodiert ausgibt
-
Hallo Leute,
ich versuche grade diesen Programmcode zu verstehen und hätte da einige FRagen:#include <stdio.h> int main(){ int a; int i = 0; int bit = sizeof(int) * 8; printf("Geben Sie eine Zahl ein, für die das Bitmuster in Binärcodierung angezeigt werden soll:"); scanf("%d", &a); for(i = 0; i < bit; i++) { printf("%d", (a & 0x80000000) >> 31); a <<= 1; } printf("\n"); return 0; }
Undzwar, was heißt hier bit= sizeof(int)*8 ??
Und was heißt dieser Ausdruck: printf("%d", (a & 0x80000000) >> 31);
erstmal verwirrt mich der Wert mit einem x dazwischen und dann auch das logische und zwischen a und dem Wert, soll man also beides um 31 Stellen verschieben nach rechts??? Oder wie ist das zu verstehen??
Vielen vielen Dank im Voraus für eure Hilfen!!!
-
Das mit dem x ist eine hexadezimale Zahl, das '&' ist nicht logisch, sondern bitweise... ach hör mal, bitte versuche nicht, völlig ohne Grundkenntnisse einen irgendwo besorgten Code zu verstehen. Das wird so nichts. Fang an, die Grundlagen zu lernen (Buch/Tutorial), dann ist so ein Stückchen Code bald kein Problem mehr für dich. Aber ums vernünftige Lernen wirst du nicht herumkommen.