Java Program to Swap Two Numbers Using Bitwise Operator

2025年3月17日 | 阅读 3 分钟

在 Java 中,交换两个数字有许多方法。通常,我们使用 **Math 类** 的 **swap()** 方法,或者使用 **第三个(临时)变量** 来 **交换两个数字**。除了这两种方法,我们还可以 **使用位运算符(XOR)** 和 **使用除法和乘法** 来 **交换两个数字**。

在本节中,我们将重点介绍 **创建一个 Java 程序,使用位运算符(^)交换两个数字**。

使用位运算符

位运算符:位异或运算符用于交换两个数字。它用符号 **(^) **表示。它比较两个操作数的位,如果它们相等则返回 **false** 或 **0**,如果不相等则返回 **true** 或 **1**。异或运算符的真值表如下:

Java Program to Swap Two Numbers Using Bitwise Operator

我们可以使用位异或运算符在不使用 swap() 方法和第三个变量的情况下交换两个数字。我们必须遵循以下步骤:

  • 找到给定变量(例如 X 和 Y)的 **二进制等效值**。
  • 找到 X ^ Y 并将其存储在 x 中,即 **X = X ^ Y**。
  • 再次找到 X ^ Y 并将其存储在 Y 中,即 **Y = X ^ Y**。
  • 找到 X ^ Y 并将其存储在 X 中,即 **X = X ^ Y**。
  • 数字已交换。

现在,让我们通过一个示例来实现上述步骤并理解交换过程。

示例:使用位运算符交换变量 X = 5 和 Y = 9。

解决方案

步骤 1:变量 X 和 Y 的二进制等效值为:

X = 5 = **0101** 且 Y = 9 = **1001**

步骤 2:计算 X = X ^ Y。

Java Program to Swap Two Numbers Using Bitwise Operator

步骤 2:计算 Y = X ^ Y。

Java Program to Swap Two Numbers Using Bitwise Operator

步骤 3:计算 X = X ^ Y。

Java Program to Swap Two Numbers Using Bitwise Operator

我们看到变量 X 包含 1001,相当于 9,而 Y 包含 0101,相当于 5。因此,变量 X 和 Y 已被交换。

X = 9 且 Y = 5

现在,让我们在 Java 程序中实现上述逻辑。

SwapTwoNumbersExample1.java

输出

Enter the first number: 5
Enter the second number: 9
Before swapping:
a = 5, b = 9
After swapping:
a = 9, b = 5

现在,让我们创建一个使用函数的程序来交换两个数字。

SwapTwoNumbersExample2.java

输出

Before swapping
x= 12, y= 34
After swapping
x= 34, y= 12 

使用乘法和除法

我们还可以使用乘法和除法运算符来交换两个数字。

SwapTwoNumbersExample3.java

输出

values before swapping:
x = 10 y = 20
values after swapping:
x = 20 y = 10

下一个主题Java 教程