File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
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
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: 46337
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.
I agree. Here's the link:
subject: kindly explain the code.
It's not a secret anymore!