Win a copy of Functional Reactive Programming this week in the Other Languages forum!

# binary shift operations with negative RHS ?

sivaram subram
Greenhorn
Posts: 9
hi javaranchers !
i am not able understand what's happening when RHS of the binary shift operands is negative ? (say 2 >> -2) . It does not give a compile error !
can anyone explain the logic behind the output of such operations?
thanks
sivaram

Manfred Leonhardt
Ranch Hand
Posts: 1492
Hi Sivaram,
When the value is positive we can say that for integers the shift amount is:
range modulus 32
and for long:
range modulus 64.
When the value is negative we can say the following for integers:
(32 - range) modulus 32
and for long:
(64 - range) modulus 64.
Therefore, we can say that the following 2 statements are equivalent:
1 << -2;
1 << 30;
Regards,
Manfred.

sing
Ranch Hand
Posts: 121
Hi Manfred,
Can you give more examples or any references to this negative shifting?Thank You.

Regards
Steffy

sing
Ranch Hand
Posts: 121
Hi Manfred,
Can you give more examples or any references of this negative shifting? Thank You.
Regards,
Steffy
Originally posted by Manfred Leonhardt:
Hi Sivaram,
When the value is positive we can say that for integers the shift amount is:
range modulus 32
and for long:
range modulus 64.
When the value is negative we can say the following for integers:
(32 - range) modulus 32
and for long:
(64 - range) modulus 64.
Therefore, we can say that the following 2 statements are equivalent:
1 << -2;
1 << 30;
Regards,
Manfred.

Junilu Lacar
Bartender
Posts: 7769
62
Here a just a couple of threads that you can refer to.
http://www.javaranch.com/ubb/Forum1/HTML/001638.html http://www.javaranch.com/ubb/Forum33/HTML/002836.html
This site has a search facility that I suggest you try to use before posting a question.
Thanks,
Junilu