& | ^ ~ << >> >>>
其中<< 表示左移右侧补0;
>> 表示右移左侧补符号位;
>>>表示右移左侧补0;
<< 左移运算符 相当乘2的多少次方
>> 右移运算符 相当除2的多少次方
>>>表示不带符号向右移动二进制数,移动后前面统统补0;两个箭头>>表示带符号移动,
没有<<<这种运算符,因为左移都是补零,没有正负数的区别。
如 -12 的二进制为:1111 1111 1111 1111 1111 1111 1111 0100;
-12 >> 3 即带符号右移3位,结果是:1111 1111 1111 1111 1111 1111 1111 1110,十进制为: -2;
-12 >>> 3 就是右移三位,前面补零,为:0001 1111 1111 1111 1111 1111 1111 1110,十进制为:536870910。
原文链接:https://blog.csdn.net/yuqilin520/article/details/82886969