<< : 左移运算符,num << 1,相当于num乘以2
1010<<n表示1010相左移动n位
n为1时:10100
n位2时:101000
依次类推
>> : 右移运算符,包含符号位,num >> 1,相当于num除以2
正数1010>>表示1010相右移动n位
n为1时:0101
n位2时:0010
依次类推java中负数的二进制表示就稍微复杂一点:
例如转换-4
(1)先将负数的绝对值转换为二进制数:0000 0100
(2)然后对其求反码:1111 1011
(3)再加1:1111 1100
1111 1111 1111 1111 1111 1111 1111 1100 即表示-4
右移一位(负数右移补1):1111 1111 1111 1111 1111 1111 1111 1110 表示-2
Java中Integer在内存中占4个字节,一个字节是8位,所以Integer是一个32位的二进制数
>>> : 无符号右移,忽略符号位,空位都以0补齐,同正数右移动