Bitwise Operator in Java2025年4月11日 | 阅读 7 分钟 在 Java 中,运算符是一个执行特定操作的符号。在本节中,我们将通过适当的示例仅讨论位运算符及其类型。 位运算符的类型Java 中共有六种位运算符
让我们详细解释一下位运算符。 按位与 (&)它是一个二元运算符,用符号 & 表示。仅当两个位都为 1 时,它才返回 1;否则返回 0。 ![]() 让我们在 Java 程序中使用按位与运算符。 示例编译并运行输出 x & y = 8 按位异或 (^)它是一个二元运算符,用符号 ^(读作 caret)表示。当两个位相同时返回 0,否则返回 1。 ![]() 让我们在 Java 程序中使用按位异或运算符。 示例编译并运行输出 x ^ y = 1 按位或 (|)它是一个二元运算符,用符号 |(读作 pipe)表示。只要有一个位为 1,它就返回 1;否则返回 0。 ![]() 让我们在 Java 程序中使用按位或运算符。 示例编译并运行输出 x | y = 9 按位非 (~)它是一个一元按位非运算符,用符号 ~(读作 tilde)表示。它返回位的逆或补码。它将每个 0 变为 1,每个 1 变为 0。 ![]() 让我们在 Java 程序中使用按位非运算符。 示例编译并运行输出 ~x = -3 位移运算符这些移位运算符用于将位向右或向左移动。如果我们除以或乘以 2,则可以使用移位运算符。移位位的通用格式如下 例如,如果 a=10 移位运算符的类型Java 提供了以下类型的移位运算符
注意:Java 不支持无符号左移运算符(<<<)。带符号右移运算符 (>>)带符号右移运算符将数字的位模式向右移动指定的位数,并用 0 填充。该运算符用符号>>表示。它还保留最左边的位(符号位)。如果最左边的位是0,则表示数字是正数。如果最左边的位是 1,则表示数字是负数。 总的来说,如果我们写 a>>n,则表示将数字的位向右移动指定的位数(n)。在数学上,我们可以将带符号右移运算符表示为 ![]() 注意:当我们在正数上应用右移运算符时,结果也是正数。同样,当我们在负数上应用右移运算符时,结果也是负数。示例:当 x = 256 和 x = -256 时,应用带符号右移运算符并指定移位 4 位。 在上例中,我们注意到在移位运算符后,256 变为 16,-256 变为 -16。 让我们创建一个 Java 程序并实现左移运算符。 示例编译并运行输出 x>>2 = 12 带符号左移运算符 (<<)带符号左移运算符(<<)将位模式向左移动。它用符号<<表示。它也保留最左边的位(符号位)。它不保留符号位。 总的来说,如果我们写 a<<n,则表示将数字的位向左移动指定的位数(n)。在数学上,我们可以将带符号右移运算符表示为 ![]() 示例 1:将 a<<3 后结果是什么?a 的值为 20。 20 的二进制表示为 = 00010100 执行左移运算符后,我们得到 示例 2:将 a<<2 后结果是什么?a 的值为 -10。 -10 的二进制表示为 = 11110110 带符号左移运算符 Java 程序 示例编译并运行输出 x<<1 = 24 无符号右移运算符 (>>>)它将零移到最左边的位置并填充零。它用符号>>>表示。请注意,>> 后的最左边位置取决于符号位。它不保留符号位。 示例:如果 a=11110000 且 b=2,则 a>>>b 是多少? 左操作数的值向右移动由右操作数指定的位数,并且移位的位用零填充。向右移出的多余位将被丢弃。 因此,在移位之前,a 的十进制值为 240,在移位之后,a 的十进制值为 60。 让我们创建一个 Java 程序并使用无符号右移运算符。 示例编译并运行输出 x>>>2 = 5 要记住的重要事项应用位运算的运算符直接作用于整数数据类型 byte、short、int 和 long 的每个位元素。它们不适用于浮点类型(float、double)。 按位与 (&): 仅当两个位都为 1 时才返回 1。通常用于屏蔽特定位。 按位或 (|): 只要有一个位为 1,就返回 1。用于设置特定位。 按位异或 (^): 当位不同时返回 1。它可用于切换位或在不使用临时变量的情况下交换值。 按位非 (~): 此操作(~)会将所有 1 变为 0,所有 0 变为 1。Java 整数表示法的二进制补码由于其二进制系统而影响数字的符号。 左移 (<<): 将位向左移动,右侧用零填充。每次移位有效地将数字乘以 2。 带符号右移 (>>): 将位向右移动,保留符号(正数填充 0,负数填充 1)。每次移位有效地将数字除以 2。 位与位移运算符 Java 选择题1. | 运算符在 Java 中做什么?
答案:2) 解释:| 运算符执行按位或操作,如果操作数的相应位至少有一个为 1,则将该位设置为 1。 2. Java 中的哪个位运算符可用于切换整数的位?
答案:2) 解释:^ 运算符执行按位异或操作,当与 1 进行异或时,该操作会切换位。 3. Java 中的哪个运算符执行零填充右移?
答案3) 解释:>>> 运算符执行零填充右移,将位向右移动并将最左边的位填充为零。 4. 哪个运算符将所有位向左移?
答案3) 解释:<< 运算符将所有位向左移动指定的位数,用零填充空出的位。 5. Java 中表达式 (12 & 5) 的结果是什么?
答案2) 二进制中,12 是 1100,5 是 0101。应用 AND 运算符的结果是 0100,即 4。 |
Java 是一种通用且广泛使用的编程语言,以其平台独立性而闻名,但与任何语言一样,编写良好且高效的代码对于出色的用户体验至关重要。无论我们是经验丰富的 Java 开发人员还是刚刚起步,都有许多方法可以...
阅读 3 分钟
JVM 和 JIT 编译器都在 Java 程序的执行中扮演着独特的角色。虽然 JVM 为 Java 字节码执行提供了运行时环境,但 JIT 编译器可以提高程序执行性能。通过将频繁使用的字节码转换为本地机器代码。Java 虚拟机 (JVM) JVM 是...
5 分钟阅读
在 Web 世界中,会话是指任何两个系统相互交互的时间长度。这两个系统可以彼此建立点对点或客户端-服务器关系。然而,问题在于,在 HTTP 协议中,状态的...
阅读 6 分钟
Java Runnable 接口 Java runnable 是一个用于在并发线程上执行代码的接口。它是一个接口,如果我们希望该类的实例由线程执行,则该类需要实现该接口。Runnable 接口有一个未定义的...方法。
5 分钟阅读
Java 中的 Date 类提供了处理日期和时间的基本方法。在本节中,我们将研究如何使用 Java 的 Date 类获取昨天的日期。在我们开始之前,重要的是要注意 Java 8 已弃用 Date 类。该...
阅读 3 分钟
名为 Java.util.concurrent.atomic.AtomicIntegerArray.set() 的内置 Java 函数允许您在 AtomicIntegerArray 的任何位置设置值。此函数通过提供 AtomicIntegerArray 的索引值作为参数来修改指定索引处的值。上述方法不返回值....
阅读 3 分钟
面向对象编程有四个支柱:抽象、多态、封装和继承。在本节中,我们将讨论其中之一,抽象。同时,我们还可以学习如何在 Java 中实现抽象。抽象 OOPs 的一个特性。该特性允许……
阅读 4 分钟
? 编程是一种锻炼或练习,可以增强我们的逻辑思维并提高解决问题的能力。它教我们如何借助计算机程序或软件来完成任务。因此,简单来说,编程就是实现解决方案的任务...
阅读 8 分钟
在不同严峻的环境中编码时,许多人可能都遇到过 NZEC 错误。NZEC(非零退出码)顾名思义,当您的代码未能返回 0 时发生。当代码返回 0 时,表示它已成功执行。任何其他...
5 分钟阅读
问题描述 想象一下,您正在从一排相互连接的果树中采摘水果。每棵树结一种特定种类的水果。您有两篮,每篮可以无限容量地携带一种水果。您从任何...
阅读 6 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India