fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.lang.*;
  4.  
  5. /* Name of the class has to be "Main" only if the class is public. */
  6. class Ideone
  7. {
  8. public static void main (String[] args) throws java.lang.Exception
  9. {
  10. // Example with a positive number
  11. int num1 = 5; // Binary: 00000000 00000000 00000000 00000101 10100
  12. int leftShift1 = num1 << 2; // Shift left by 2 positions
  13.  
  14. // Example with a negative number
  15. int num2 = -5; // Binary (two's complement): 11111111 11111111 11111111 11111011
  16. int leftShift2 = num2 << 2; // Shift left by 2 positions
  17.  
  18. // Right shift examples
  19. int signedRightShift = num2 >> 2; // Signed right shift (preserves sign)
  20. int unsignedRightShift = num2 >>> 2; // Unsigned right shift (fills with 0s)
  21.  
  22. // Display results
  23. System.out.println("Original number (5): " + num1 + " -> Binary: " + Integer.toBinaryString(num1)); // 20
  24. System.out.println("5 << 2 (Shift left by 2): " + leftShift1 + " -> Binary: " + Integer.toBinaryString(leftShift1)); // 00000000 00000000 00000000 00010100
  25. System.out.println();
  26.  
  27. System.out.println("Original number (-5): " + num2 + " -> Binary: " + Integer.toBinaryString(num2)); // -20
  28. System.out.println("-5 << 2 (Shift left by 2): " + leftShift2 + " -> Binary: " + Integer.toBinaryString(leftShift2)); // 11111111 11111111 11111111 11101100
  29. System.out.println();
  30.  
  31. System.out.println("-5 >> 2 (Signed right shift): " + signedRightShift + " -> Binary: " + Integer.toBinaryString(signedRightShift)); // -5
  32. System.out.println("-5 >>> 2 (Unsigned right shift): " + unsignedRightShift + " -> Binary: " + Integer.toBinaryString(unsignedRightShift)); // 4
  33. }
  34. }
Success #stdin #stdout 0.16s 57692KB
stdin
Standard input is empty
stdout
Original number (5): 5 -> Binary: 101
5 << 2 (Shift left by 2): 20 -> Binary: 10100

Original number (-5): -5 -> Binary: 11111111111111111111111111111011
-5 << 2 (Shift left by 2): -20 -> Binary: 11111111111111111111111111101100

-5 >> 2 (Signed right shift): -2 -> Binary: 11111111111111111111111111111110
-5 >>> 2 (Unsigned right shift): 1073741822 -> Binary: 111111111111111111111111111110