Java的位运算符主要有4个:与(&),或(|),异或(^),非(~),除了非(~),左移(<<),右移(>>)运算符是一元运算符,其他都是二元运算符。
Java 定义的位运算是对整数类型的位进行操作,包括 long,int,short,char 和 byte。
运算符 | 名称 | 说明 | 示例 |
& | 与 | 按位进行与运算(AND) | 4&7=4 |
| 或 | 按位进行或运算(OR) | 4|7=7 |
^ | 异或 | 按位进行异或运算(XOR) | 4^7=3 |
~ | 非 | 按位进行取反运算(NOT) | ~4=-5 |
1.位与运算符(&)
位与运算符(&):参与运算的数字,低位对齐,高位不足的补零,如果对应的二进制位同时为 1,那么计算结果才为 1,否则为 0。因此,任何数与 0 进行按位与运算,其结果都为 0。
示例:
4&7
如下运算过程:
2.位或运算符(|)
位或运算符(|):参与运算的数字,低位对齐,高位不足的补零。如果对应的二进制位只要有一个为 1,那么结果就为 1;如果对应的二进制位都为 0,结果才为 0。
示例:
4|7
运算过程:
3.位异或运算符(^)
位异或运算符(^):
,参与运算的数字,低位对齐,高位不足的补零,如果对应的二进制位相同(同时为 0 或同时为 1)时,结果为 0;如果对应的二进制位不相同,结果则为 1。
示例:
4^7
运算过程:
4.位取反运算符(~
)
位取反运算符(~
):只对一个操作数进行运算,将操作数二进制中的 1 改为 0,0 改为 1。
位取反运算符单独一个章节介绍,涉及到计算机对正、负数存储方式的不同。
5.位左移运算符<<
位左移运算符:按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
示例:
4<<2
运算过程:
6.位右移运算符>>
位右移运算符:按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补零。
示例:
4<<2
运算过程: