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

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

Joined: Oct 13, 2005
Posts: 37950
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
exam watch (page 604) Generics constructor
Expression - How
Flow Control