位运算是直接对二进制进行运算。
请看代码?
//位运算符:>> << >>> | & ~ ^
class TestBit{
public static void main(String[] args){
int i1=31;
//左移
System.out.println(i1<<3);//i1左移3位:248
System.out.println(i1<<28);//i1左移28位:-268435456
//右移(有符号>>)--正数:左边都用0补
System.out.println(i1>>2);//7
//右移(无符号>>>)--正数:左边都用0补
System.out.println(i1>>>2);//7
int i2=-31;
//右移(有符号>>)--负数:左边补1
System.out.println(i2>>2);//-8
//右移(无符号>>>)--负数:左边补0
System.out.println(i2>>>2);//1073741816
}
}