AlexC: Bit Operationen

Beitrag lesen

Hallo zusammen,

ich versuche durch das Thema Bit-Operatoren zu steigen und stehe vor folgendem Problem:

Ich habe eine Zahl, die ich mir in Binärdarstellung ausgeben lasse. Das sieht dann so aus:

01010111010110100000100111111010

Jetzt verschiebe ich diese Bits um 2 Stellen nach rechts:

$foo = ($bar >> 2)

in $foo steht jetzt:

00010101110101101000001001111110

Sieht für mich alles richtig aus.

Das gleiche mache ich jetzt mit

10010010101111111111110111111010

Nach dem Verschieben der Bits erhalte ich aber:

11100100101011111111111101111110

Das sieht für mich nun wiederum nicht richtig aus. So wie ich es verstanden habe, müssten alle Bits um 2 Stellen nach rechts geschoben werden. Dann ist es ja eigentlich unmöglich, dass plötzlich Einsen auf der linken Seite erscheinen.

Kann mich da mal jemand aufklären?

Viele Grüße
Alex