下表列出了位运算符的基本运算,假设整数变量 A 的值为 60 和变量 B 的值为 13:

操作符 含义 描述 例子

按位与

| 如果相对应位都是 1,则结果为 1,否则为 0 | (A&B),得到 12,即 0000 1100 | | | |

按位或

| 如果相对应位都是 0,则结果为 0,否则为 1 | (A | B)得到 61,即 0011 1101 | | ^ |

异或

| 如果相对应位值相同,则结果为 0,否则为 1 | (A ^ B)得到 49,即 0011 0001 | | 〜 |

取反

| 按位取反运算符翻转操作数的每一位,即 0 变成 1,1 变成 0。 | (〜A)得到 - 61,即 1100 0011 | | << |

左移

| 按位左移运算符。左操作数按位左移右操作数指定的位数。乘以2的n次方 | A << 2 得到 240,即 1111 0000 | | >> |

右移

| 按位右移运算符。左操作数按位右移右操作数指定的位数。除以2的n次方 | A >> 2 得到 15 即 1111 | | >>> |

无符号右移

| 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。除以2的n次方 无符号位 | A>>>2 得到 15 即 0000 1111 |

2)运算规则:
按二进制形式把所有的数字向右移动对应的位数,低位移出 (舍弃),高位的空位补符号位,即正数补零,负数补 1

因为左移是在后面补 0
而右移是在前面边补 1 或 0
有无符号是取决于数的前面的第一位是 0 还是 1
所以右移是会产生到底补 1 还是 0 的问题。
而左移始终是在右边补,不会产生符号问题。
所以没有必要无符号左移 <<<。
无符号左移 <<< 和左移 << 是一样的概念

原码,反码,补码 详解