>> 31;  "/>
Home / Java Programming / Operators and Assignments :: Discussion

Discussion :: Operators and Assignments

  1. What will be the output of the program?

    class BitShift
    {   
       public static void main(String [] args)      
       {
          int x = 0x80000000;       
          Sytsem.out.print(x + " and  ");                 
          x = x >>> 31;         
          System.out.println(x);  
       } 
    } 
    

  2. A.

    -2147483648 and 1

    B.

    0x80000000 and 0x00000001

    C.

    -2147483648 and -1

    D.

    1 and -2147483648

    View Answer

    Workspace

    Answer : Option A

    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.

     

     


Be The First To Comment