📜  Java中的位运算符(1)

📅  最后修改于: 2023-12-03 14:42:55.795000             🧑  作者: Mango

Java中的位运算符

在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中常用的位运算符,熟练掌握位运算符可以让开发者更高效地操作二进制数据。