Java中的位运算符(附带实例)
位运算符是 Java 中用于直接对整数的二进制位进行操作的一组运算符。它们不仅可以提供高效的计算能力,还可以用于实现各种底层操作。
下面罗列了位运算符的几点注意事项:
位运算符 | 描述 |
---|---|
按位与(&) | 若两个操作数都为 1,则结果都为 1,否则为 0。 |
按位或(|) | 若两个操作数其中有一个为 1,则结果为 1,否则为 0。 |
按位异或(^) | 若两个操作数的每一位相同,则结果为 0,否则为 1。 |
按位反(~) | 若操作数每一位取反,则 0 变成 1,1变成0。 |
左移(<<) | 若将一个操作数的二进制位向左移动指定的位数,则右侧为 0 填充,相当于乘以 2 的移位次数的次方。 |
右移(>>) | 若将一个操作数的二进制位向右移动指定的位数,则左侧根据符号填充,整数用 0 填充,负数用 1 填充。 |
无符号右移(>>>) | 若将一个操作数二进制位向右移动指定的位数,则左侧始终用 0 填充,与符号无关。 |
下面罗列了位运算符的几点注意事项:
- 位运算符仅适用于字节类型(byte)、短整型(short)、整型(int)、长整型(long)数据;
- 如果对负数执行位运算,就需要关注与补码表示的关系;
- 重点关注数据溢出时的情况,特别是在进行左移操作时。
Java位运算符的使用
【实例】编写一个简单的 Java 程序,根据定义的变量和不同的条件,显示不同的结果,代码如下:public class OperatorDemo { public static void main(String[] args) { // 定义变量 int a1 = 4; // 二进制为 100 int b1 = 2; // 二进制为 10 int result1 = a1 & b1; // 二进制是 000 System.out.println("a & b = " + result1); // 最后结果 0 } }运行结果为:
a & b = 0