wood burning stoves 2.0*
The moose likes Beginning Java and the fly likes kindly explain the code. 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 "kindly explain the code." Watch "kindly explain the code." New topic
Author

kindly explain the code.

ramanuja varun
Ranch Hand

Joined: Aug 31, 2007
Posts: 47
public class Test
{
public static void main(String args[])
{
int x = 11;

x &= 2; //1

System.out.println(x << 2 + x); //2
}
}
please explain why this code will print 32 instead of 10(x<<2 will give 8)
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 37950
    
  22
Please put all your code in CODE tags; it makes it much easier to read.

It is impossible for anything & 2 to equal 1; in fact 11 & 2 gives 2. The + operator has a higher priority than the bit shift operators, so you are shifting by 4, not by 2.
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: kindly explain the code.
 
Similar Threads
labeled statement
Operators
exam watch (page 604) Generics constructor
Expression - How
Flow Control