Java中的位运算符是什么? 及其分类(附示例)

已发表: 2021-05-20

Java 是印度最主要的编程语言之一,占据了大约 20% 的市场份额 Java 中的位运算符是一种符号/符号,它对独立位执行指定的操作,一次取一个。 它用于处理二进制数的各个位,并且可以与各种整数类型一起使用——char、int、long、short、byte。

Java中位运算符大致可分为 7 种类型:

Java中的位运算符象征描述
按位与| 当且仅当它在两个操作数中都存在时,在结果中保留一点。
按位或& 如果它存在于两个操作数中的任何一个中,则保留一点。
按位异或^ 如果它只出现在一个操作数中而不是两个操作数中,则保留一点。
按位补码~ 也称为 1 的补码。 只需反转操作数的位。
按位左移<< 左操作数中的位向左移动右操作数中指定的位数。
签名右移>> 左操作数中的位向右移动右操作数中指定的位数。
无符号右移>>> 就像 SIGNED RIGHT SHIFT 加上移位的位一样用零填充。

现在让我们详细探讨Java 中的每个位运算符:

目录

1. 或 (A | B)

真值表

一种输出
0 0 0
0 1 1
1 0 1
1 1 1

例子

A = 1011 1110

B = 0011 0101

一个 | 乙 = 1011 1111

句法

类主{

公共静态无效主要(字符串[]参数){

int 操作数 1 = 190,操作数 2 = 53,输出;

// 190 和 53 之间的按位或

输出 = 操作数 1 | 操作数2;

System.out.println(输出); // 程序打印 191

}

}

2. 与(A 和 B)

真值表

一种输出
0 0 0
0 1 0
1 0 0
1 1 1

例子

A = 1011 1110

B = 0011 0101

A & B = 0011 0100

句法

类主{

公共静态无效主要(字符串[]参数){

int 操作数 1 = 190,操作数 2 = 53,输出;

// 190 和 53 之间的按位或

输出 = 操作数 1 | 操作数2;

System.out.println(输出); // 程序打印 52

}

}

  1. 包含 OR / XOR (A ^ B)

真值表

一种输出
0 0 0
0 1 1
1 0 1
1 1 0

例子

A = 1011 1110

B = 0011 0101

A ^ B = 1000 0011

句法

类主{

公共静态无效主要(字符串[]参数){

int 操作数 1 = 190,操作数 2 = 53,输出;

// 190 和 53 之间的按位或

输出 = 操作数 1 | 操作数2;

System.out.println(输出); // 程序打印 131

}

}

3. 补充(A~B)

在十进制术语中,数字 A 的按位补码是 – (A+1)。 但是,在二进制域中,我们需要先计算它的 1 的补码,然后将其转换成它的 2 的补码,才能得到想要的输出。

1 的补码——只需反转位。 例如:

A = 1011 1110 (190)

A 的 1 补码 = 0100 0001

A 的 2 补码 = A 的 1 补码 + 1 = 0100 0010

句法

类主{

公共静态无效主要(字符串[]参数){

int 操作数4 = 190,输出;

// 190 的按位补码

输出=〜操作数4;

System.out.println(输出); // 打印 -191

}

}

  1. 左移 (A << 1)

假设 A = 1011 1110

A << 1 = ?

Java中的这个按位运算符使所有位左移1,即输出0111 1100。最左边的位(最高有效位或MSB)被丢弃,最右边的空位加一个0(最低有效位或 LSB)。 这是为右边的每个空位完成的。

句法

类主{

公共静态无效主要(字符串[]参数){

整数操作数 = 3; // 二进制 - 11

// 1 位左移操作

int输出=操作数<<1;

System.out.println(输出); // 打印 2

}

}

4. 签名右移 (A >>2)

Java 中的这个按位运算符将位模式向右移动指定的位数。 LSB 被丢弃,MSB 用符号位填充。 0代表正号,1代表负号。

句法

类主{

公共静态无效主要(字符串[]参数){

整数操作数 1 = 2;

整数操作数2 = -2;

// 2 位有符号右移

System.out.println(operand1 >> 2); // 打印 1

System.out.println(operand2 >> 2); // 打印 -1

}

}

5. 无符号右移(A >>>2)

这里的操作与 SIGNED RIGHT SHIFT 完全相同,只是最左边的空位被替换为 0 而不是符号位。

句法

类主{

公共静态无效主要(字符串[]参数){

整数操作数 = 240; // 二进制数 – 1111 0000

// 2 位无符号右移

System.out.println(操作数 >>> 2); // 打印 60

}

}

从世界顶级大学在线学习软件工程课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

结论

热衷于掌握 Java 并以此为职业? 查看 upGrad 的软件和技术轨道。 报名参加为期 13 个月的全栈开发执行 PG 计划,亲身体验真实世界的项目。 隶属于著名的 IIIT 班加罗尔,您有机会学习 16 种编程语言和工具,并保证 3 次工作面试。

什么是位运算符?

位运算符对操作数的每一位进行运算,并以 1 和 0 的形式返回结果。 大多数位运算符用于制作各种掩码,可用于制作位域、更改数据类型的大小和对齐数据类型。 位运算符用于对二进制数执行逐位运算。 它用于在位级操作中更有效。 我们不能对非整数数据类型的变量使用按位运算符。

Java中的位运算符有哪些类型?

在 Java 语言中,除了算术运算符外,还使用了位运算符。 虽然只有几个位运算符,但它们非常有用。 在 Java 中有六个运算符。 它们是:按位与、按位或、按位异或、按位左移、按位右移和补码。 这些运算符可应用于整数类型 byte、short、int、long 和 char。

java编程语言的特点是什么?

Java 是一种通用的面向对象的编程语言。 Java 应用程序通常被编译成字节码,然后在 Java 虚拟机上执行。 Java 旨在运行在各种平台上。 它还被设计用于分布式计算环境。 用 Java 编程语言编写的程序称为 Java 应用程序或 Java 应用程序环境。 Java 编程语言是一种强大而灵活的语言。 Java 应用程序通常比一般的 Web 应用程序更大、更复杂。 Java 编程语言是一种通用语言。 它可用于为任何目的创建应用程序。 多线程、网络、安全性和持久性等特性使 Java 适用于各种用途。