Java位运算符理解方式
位运算符(左移):
<<(左移)
将一个运算符对象的各二进制位全部左移诺干位(左边的二进制位丢弃,右边补0)
操作数每左移一位,相当于该数乘以2
(右移)
将一个数的各二进制位全部右移诺干位,正数左补0,负数左补1,右边丢弃。
操作数每右移一位,相当于该数除以2
无符号右移:
无论最高位是0还是1,左侧被移空的高位都填入了0;
小技巧:位移可以实现整数除以或乘以2的n次方的效果。例如, y>>1的结果与y/2的结果相同,总之,一个数左移n位,就是将这个数乘以2的n次方;一个数右移n位,就是将这个数除以2的n次方。