Home » Java Programming » Operators and Assignments

What will be the output of the program? class BitShift { public static void main(String [] args) { int x = 0x80000000; System.out.print(x + " and "); x = x >>> 31; System.out.println(x); } }

Correct Answer: -2147483648 and 1

Explanation:

Option A is correct. The >>> operator moves all bits to the right, zero filling the left bits. The bit transformation looks like this:


Before: 1000 0000 0000 0000 0000 0000 0000 0000


After: 0000 0000 0000 0000 0000 0000 0000 0001


Option C is incorrect because the >>> operator zero fills the left bits, which in this case changes the sign of x, as shown.


Option B is incorrect because the output method print() always displays integers in base 10.


Option D is incorrect because this is the reverse order of the two output numbers.


← Previous Question Next Question→

More Questions from Operators and Assignments

Discussion & Comments

No comments yet. Be the first to comment!
Join Discussion