1、算术右移 >>
: 低位溢出,符号位不变,并用符号位补溢出的高位
2、算术左移 <<
: 符号位不变,低位补0
3、逻辑右移(或者无符号右移)>>>
:低维溢出,高位补零
4、没有<<<
位运算
public class BitOperator{
// 编写一个main方法
public static void main(String[] args){
System.out.println(2 & 3);
// 10000000 00000000 00000000 00000010
// 11111111 11111111 11111111 11111101
// 11111111 11111111 11111111 11111110
// 00000000 00000000 00000000 00000001
System.out.println(~-2);
// 00000000 00000000 00000000 00000010
// 11111111 11111111 11111111 11111101
// 11111111 11111111 11111111 11111100
// 10000000 00000000 00000000 00000011
System.out.println(~2);
// 00000000 00000000 00000000 00000010
// 00000000 00000000 00000000 00000000
int a = 1 >> 2;
// 00000000 00000000 00000000 00000001
// 00000000 00000000 00000000 00000100
int c = 1 << 2;
// 00000000 00000000 00000000 00000001
//
int b = 1 << 31;
System.out.println(a);
System.out.println(c);
System.out.println(b);
System.out.println(0b10000000000000000000000000000000);
}
}