Java中的位运算符是什么? 及其分类(附示例)
已发表: 2021-05-20Java 是印度最主要的编程语言之一,占据了大约 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
}
}
- 包含 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
}
}
- 左移 (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 适用于各种用途。