Bitwise Operator

...komplette Frage anzeigen

3 Antworten

Hallo,

In Assembler bedeutet ein Shiften nach rechts, das die linken Bits mit 0 aufgefüllt werden.

mov al, -1

mov cl, 3

shr al, cl

Als Ergebnis erhält man 31.

Möchte man die linken Bits mit denen die rechts rausgeworfen werden füllen, benutzt man den Befehl ROR (Rotate Right)

mov al, -1

mov cl, 3

ror al, cl

Als Ergebnis erhält man hier (wenn man von -1 ausgeht) wieder -1, da ja alle Bits eine 1 darstellen. Kann man auch gut im Windows-Calculator sehen (wissenschaftlicher Modus).

MfG

Nicky

Antwort bewerten Vielen Dank für Deine Bewertung

Hallo, ich bin zwar kein Prog. aber lerne gern dazu. Hab eben mal schnell bissl gegoogelt u Wiki ;-)

Was genau verstehst du nicht?

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von elgreeco
11.10.2011, 23:58

wie man auf -1 kommt

0

-1 ist im ZweierKompliment 11111111

Wenn du das um 3 Stellen nach rechts verschiebst erhälst du 11111111 weil das "frei gewordene" linkeste Bit durch eine Kopie von sich selbst gefüllt wird in dem Fall also eine 1.

http://en.wikipedia.org/wiki/Bitwiseoperation#Arithmeticshift

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von DonFredericus
12.10.2011, 00:11

Genau so ist es :-)

...hab grad erstmal das Zweierkomplement lernen müssen ^^

0

Was möchtest Du wissen?