Java有6种基本位运算符,分为位逻辑运算(&, |, ^, ~)和位移运算(, >>>)。&按位与用于清零或判断标志位,|按位或用于设置标志位,^按位异或用于翻转位或交换数值,~按位取反逐位取反结果为补码形式。有符号右移高位补符号位,等价于除以2的幂,>>>无符号右移高位补0,常用于底层操作。实际开发中&、|、^、常用,>>>多见于网络或字节处理。

Java 有 6 种基本位运算符,分为两类:位逻辑运算(4 种)和位移运算(2 种)。
位逻辑运算符
对两个操作数的每一位进行逻辑运算,结果仍是整数。
-
&:按位与。对应位都为 1 才得 1,否则为 0。常用于清零某些位或判断标志位(如
flags & MASK != 0)。 -
|:按位或。对应位有一个为 1 就得 1。常用于设置标志位(如
flags | NEW_FLAG)。 -
^:按位异或。对应位不同得 1,相同得 0。可用于翻转特定位(
x ^ MASK),或交换两个整数(无需临时变量)。 -
~:按位取反(单目)。对每个位取反,0 变 1,1 变 0。注意:对正数取反后是负数(补码表示),例如
~5得 -6。
位移运算符
将操作数的二进制位整体向左或向右移动指定位置,移出的位丢弃,空位补 0 或符号位。
- :左移。高位丢弃,低位补 0。效果等价于乘以 2 的 n 次方(不溢出时),如
5 是 10。 -
>>:有符号右移。低位丢弃,高位补符号位(正数补 0,负数补 1)。等价于带符号整除 2 的 n 次方,如
-8 >> 1是 -4。 - >>>:无符号右移(也叫逻辑右移)。低位丢弃,高位一律补 0。适用于处理纯位模式(如解析字节流、掩码操作),负数也会变成很大的正数。
注意:>> 和 >>> 都是右移,但语义不同;Java 没有无符号左移(因为左移补 0 对所有整数都一样)。
立即学习“Java免费学习笔记(深入)”;
基本上就这些。实际开发中常用 &、|、^、>,>>> 在底层或网络编程中更常见。










