java左移、右移: 移位运算符和气压的位运算符一样都是用来操作二进制位。
1)<<,左移位:将操作符左侧的操作数向左移动操作数右侧指定的位数。移动的规则是在二进制的低位补0.2)>>,有符号右移位,将操作符左侧的操作数向右移动操作数右侧指定的位数。移动的规则是,如果被操作数的符号为正,则在二进制的高位补0;如果被操作数的符号为负,则在二进制的高位补1
3)>>>,无符号右移位:将操作符左侧的操作数向右移动操作数右侧指定的位数。移动的对则是,无论被操作数的符号是正是负,都在二进制的高位补0.
例如: int a=-8;
System.out.print(a>>2);//结果为-2
int a=-8;
System.out.print(Integer.toBinaryString(a>>2));//结果为111111111111111111111111
System.out.print(Integer.toBinaryString(a>>>2));//结果为111111111111111111111111
int a=-8;
System.out.print(a>>>2);//结果为1073741822
当移动的运算数是int、long 类型时,按规则处理;
当移动的运算数是byte 和short类型时,将自动把这些类型扩大为 int 型再按照规则处理。