This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes Beginning Java and the fly likes Right Shift Operator Evaluation Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Right Shift Operator Evaluation " Watch "Right Shift Operator Evaluation " New topic
Author

Right Shift Operator Evaluation

Mohnish Khiani
Ranch Hand

Joined: May 17, 2010
Posts: 65
What would be the answer to this and how is it getting evaluated>

Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14074
    
  16

To find out what the output of this is, you can ofcourse simply try it out.

A byte is an 8-bit signed integer. In the first line, you're setting the bits to 0xf1 (or 1111 0001 in binary).

In line 2 you're first shifting this to the right by 4 bits. When you shift a byte to the right, all the bits go right one place, the left rightmost bit will be discarded and the right leftmost bit will be copied from what was previously the right leftmost bit. So:

[1] 1111 0001 >> 1 = 1111 1000
[2] 1111 1000 >> 1 = 1111 1100
[3] 1111 1100 >> 1 = 1111 1110
[4] 1111 1110 >> 1 = 1111 1111

The result after >> 4 is: 1111 1111

Then you do a bitwise AND with 0x0f (or 0000 1111 in binary).

1111 1111 & 0000 1111 = 0000 1111

So the result is 0000 1111, which is 0x0f in hexadecimal or 15 in decimal.

Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 7 API documentation
Scala Notes - My blog about Scala
Mohnish Khiani
Ranch Hand

Joined: May 17, 2010
Posts: 65
Thank You Sir..thanks a lot for your answer
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 37913
    
  22
Are you sure you had leftmost and rightmost the right way round, Jesper?
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14074
    
  16

Fixed. At least I was consistently writing it wrong...
 
jQuery in Action, 2nd edition
 
subject: Right Shift Operator Evaluation
 
Similar Threads
byte
Integer class : cast problem
int as expression value
Integer literals implicit casting
Can a Byte be converted to String?