class Test{
public static void main(String[] args) {
final int MAX_VALUE = 2147483647;
final int MIN_VALUE = -2147483648;
int i = MAX_VALUE;
int j = MIN_VALUE;
System.out.println("i="+ i);
System.out.println("j="+ j);
System.out.println( "--左移位<<操作符:低位补0;");
System.out.println( Integer.toBinaryString(i) + " = i的二进制");
System.out.println( Integer.toBinaryString(i<<5) + " =i<<5 ");
System.out.println( "--有符号右移>>操作符:若符号为正,则在高位补0;若符号为负,则在高位补1;");
System.out.println( Integer.toBinaryString(i) + " = i的二进制");
System.out.println( Integer.toBinaryString(i>>5) + "=i>>5 ");
System.out.println( Integer.toBinaryString(j) + " = j的二进制");
System.out.println( Integer.toBinaryString(j>>5) + "=j>>5 ");
System.out.println( "--无符号右移>>>操作符:高位补0;");
System.out.println( Integer.toBinaryString(i>>>5) + "=i>>>5 ");
System.out.println( Integer.toBinaryString(j>>>5) + "=j>>>5 ");
}
}
输出为:
i=2147483647
j=-2147483648
--左移位<<操作符:低位补0;
1111111111111111111111111111111 = i的二进制
11111111111111111111111111100000 =i<<5
--有符号右移>>操作符:若符号为正,则在高位补0;若符号为负,则在高位补1;
1111111111111111111111111111111 = i的二进制
11111111111111111111111111=i>>5
10000000000000000000000000000000 = j的二进制
11111100000000000000000000000000=j>>5
--无符号右移>>>操作符:高位补0;
11111111111111111111111111=i>>>5
100000000000000000000000000=j>>>5