i和j都是整数
i<<j 表示 i 的二进制左移j位,前面用符号位补充,等同于 i乘以2的j次方
i>>j 表示 i 的二进制右移j位,后面用0补充,这里不同于i除以2的j次方
i>>>j (无符号右移)表示 i 的二进制右移j位,前面用0补充(始终为正数)。正数和负数有区别
代码测试时默认的是32位二进制,这里只是方便说明
正数
3 >> 1 3的8位二进制表示为 00000011 右移1位之后用符号位补充为 00000001 转为十进制为1
3 << 1 3的8位二进制表示为 00000011 左移1位之后用0补充为 00000110 转为十进制为6
负数
-3 >> 1 -3的