这篇Java教程基于JDK1.8。教程中的示例和实践不会使用未来发行版中的优化建议。
位运算与位移运算符
Java编程语言为整数类型提供了位运算和位移运算符。这类操作符相比较而言使用的频率较低。因此,它们的覆盖面较短,只需要了解这些操作符的存在即可。
一元位补运算符“~”反转位运算,它可以用在任何整数类型上,使得“0”变成“1”,然后“1”变成“0”。比如一个字节包含8位,将补运算符运用在位形式表示的数“00000000”上则会得到“11111111”。
带符号的左移操作符“<<” 向左移动一个位模式,带符号的右移操作符“>>” 向右移动一个位模式。位模式由左操作数给出,移动的位数由右操作数给出。无符号的右移操作符“>>>”用0填充右移后最左边的位置,有符号的右移操作符“>>”最左边的位置则取决于该数的符号位。
& 操作符完成按位与运算
^ 操作符完成按位异或运算
| 操作符完成按位或运算
下面的程序使用位与运算打印出了数字“2”到标准输出:
public class BitDemo {
public static void main(String[] args){
int bitmask = 0x000F;
int val = 0x2222;
// print 2
System.out.println(val & bitmask);
}
}