Frage von Kirra1, 32

wie kommt das Programm an folgende Ausgabe (C)?

ich habe folgendes Programm eingetippt und hab 16 und 4 gekriegt verstehe aber nicht warum ??

int main(void) { unsigned int zahl; zahl = 8; zahl = zahl << 1; printf("zahl = %d",zahl); zahl = zahl >> 2; printf("zahl = %d",zahl);

Antwort
von NoHumanBeing, 27

Also, Zahl wird zunächst 8 zugewiesen. Das ist in der Binärdarstellung 100.

Dann wird die Zahl um ein Bit nach links geschoben, also in der Binärdarstellung 1000. Das macht der "<<"-Operator. Eine binäre 1000 ist eine dezimale 16, daher die Ausgabe 16. (Der Formatstring "%d" formatiert dezimal.)

Dann wird die Zahl um zwei Bits nach rechts geschoben, also in der Binärdarstellung 10. Das macht der ">>"-Operator. Eine binäre 10 ist eine dezimale 2, daher die Ausgabe 2. (Selber Formatstring, wie oben.)

Antwort
von J0T4T4, 16

https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/BitOp/bitshift.html

Da kannst Du es nachlesen. Google hilft.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten