Frage Bitshiften
-
Hallo ich verstehe das mit dem Bitshiften irgendwie nicht so richtig.
z.b. folgender code:
int x =3; int y =2; x=4<<y; printf("%d", x); //Ausgabe x=16
aber warum wird 16 ausgegeben. Laut definition:
...verschiebt den Inhalt einer Variable bitweise nach links. Bei einer ganzen nicht negativen Zahl entspricht eine Verschiebung einer Multiplikation mit 2n, wobei n die Anzahl der Verschiebungen ist
Also lautet die Rechnung: 2*2*4=16, soweit ok
aber wenn ich "manuell" shifte:
10 // binäre Darstellung für 2 -> Ausgangspunkt 100 // erster Linksshift 1000 // zweiter Linksshift 10000 // dritter Linksshift 100000 // vierter Linksshift = 32
komme ich auf 32.
Wo liegt mein Fehler? Danke
-
Ob du 4 zweimal shiftest, oder 2 viermal, ist nicht dasselbe.
-
DANKE