移位运算
1、byte、char、short移位运算后都将变为整形,byte - int 之间,若未做任何优化,规定实际的移动次数是和32的余数,也就是说移动33次和1次一样。long型的是64次。
左移 <<
高位舍弃,低位补0,相当于*2的n次方(n:移动位数,且数字没有溢出)
右移 >>
正数高位补0,负数高位补1,相当于/2的n次方 同上
例
1、 3<<2
3的10进制 -> 0000 0000 0000 0000 0000 0000 0000 0011 2进制 ,左移后 ->
0000 0000 0000 0000 0000 0000 0000 1100 -> 12 十进制
3 * 2^2
2、-7 >> 2
-7 : 10进制 -> 1111 1111 1111 1111 1111 1111 11111001 2进制(负数计算位时按补码算) ,右移后 ->
1111 1111 1111 1111 1111 1111 11111110 因为是负数,补1