Java编程语言还提供了对整数类型执行按位和移位操作的运算符。本节中讨论的运算符不太常用。因此,它们的覆盖范围很短;目的只是让您知道这些运算符的存在。
一元按位补数运算符“~
”反转位模式;它可以应用于任何整数类型,每个“0”变为“1”,每个“1”变为“0”。例如,一byte
包含8位;将此运算符应用于位模式为“00000000”的值,会将其模式更改为“11111111”。
有符号的左移位运算符“<<
”将位模式向左移位,而有符号的右移位运算符“>>
”将位模式向右移位。位模式由左操作数指定,移位位置的数量由右操作数指定。无符号右移运算符“>>>
”将零移位到最左位置,而之后的最左位置">>"
取决于符号扩展。
按位&
运算符执行按位与运算。
按位^
运算符执行按位异或运算。
按位|
运算符执行按位或运算。
下面的程序 BitDemo
使用按位与运算符将数字“2”打印到标准输出。
class BitDemo {
public static void main(String[] args) {
int bitmask = 0x000F;
int val = 0x2222;
// prints "2"
System.out.println(val & bitmask);
}
}