📅  最后修改于: 2023-12-03 14:42:55.795000             🧑  作者: Mango
在Java中,可以使用位运算符对二进制数据进行操作。这些操作包括位与、位或、位非、位异或和位移。
位与运算符可以比较两个二进制值,如果对应的位都为1,则结果为1,否则为0。
int a = 5; // 二进制表示为:0101
int b = 3; // 二进制表示为:0011
int c = a & b; // 二进制表示为:0001,即为1
System.out.println(c); // 输出结果为1
位或运算符可以比较两个二进制值,如果对应的位有一个为1,则结果为1,否则为0。
int a = 5; // 二进制表示为:0101
int b = 3; // 二进制表示为:0011
int c = a | b; // 二进制表示为:0111,即为7
System.out.println(c); // 输出结果为7
位非运算符可以将一个二进制值的每一位取反。
int a = 5; // 二进制表示为:0101
int b = ~a; // 二进制表示为:1010(取反之后)
System.out.println(b); // 输出结果为-6
位异或运算符比较两个二进制值,如果对应的位只有一个为1,则结果为1,否则为0。
int a = 5; // 二进制表示为:0101
int b = 3; // 二进制表示为:0011
int c = a ^ b; // 二进制表示为:0110,即为6
System.out.println(c); // 输出结果为6
位移运算符可以将二进制值向左或向右移动一定数量的位。左移运算符(<<)会将每个位向左移动若干位,右侧空出的位用0填充。右移运算符(>>)会将每个位向右移动若干位,左侧空出的位用符号位填充。无符号右移运算符(>>>)会将二进制值的每个位向右移动若干位,左侧空出的位用0填充。
int a = 7; // 二进制表示为:0111
int b = a << 1; // 二进制表示为:1110,即为14
int c = a >> 1; // 二进制表示为:0011,即为3
int d = a >>> 1; // 二进制表示为:0011,即为3
System.out.println(b); // 输出结果为14
System.out.println(c); // 输出结果为3
System.out.println(d); // 输出结果为3
以上是Java中常用的位运算符,熟练掌握位运算符可以让开发者更高效地操作二进制数据。