Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

binary shift operations with negative RHS ?

 
sivaram subram
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi Manfred,
Can you give more examples or any references to this negative shifting?Thank You.

Regards
Steffy
 
sing
Ranch Hand
Posts: 121
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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: 7557
52
Android Eclipse IDE IntelliJ IDE Java Linux Mac Scala Spring Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic