📜  使用按位异或运算交换两个数字的Java程序

📅  最后修改于: 2022-05-13 01:55:33.918000             🧑  作者: Mango

使用按位异或运算交换两个数字的Java程序

给定两个数字 x 和 y。我们必须编写一个Java程序来使用按位异或运算交换两个数字的内容。

Input 1: x = 5, y = 10
Output : x = 10, y = 5
Explaination :
1. x = x ^ y -> x = 15
2. y = x ^ y -> y = 5
3. x = x ^ y -> x = 10

Input 2: x = 15, y = 20
Output : x = 20, y = 15

按位异或运算符(由 ^ 表示)比较两个操作数的相应位,如果相等则返回 1,如果不相等则返回 0。假设我们有两个数字 x 和 y,那么 x^y 实际上会做的是比较 x 和 y 的每个对应位,如果它们不同,它将生成 1 作为这两位的输出(一个x 和 y 之一)考虑在内,如果位相同,那么它将生成 0 作为两位的输出。

以下是上述方法的代码实现:-

Java
// Java program to swap the elements using XOR Operator
import java.io.*;
class GFG {
    public static void main(String[] args)
    {
        int x = 5, y = 10;
        // binary equivalent of 5 is 0101
        // binary equivalent of 10 is 1010
  
        // binary equivalent of x  will become 1111 ie x=15
        x = x ^ y;
        // binary equivalent of y  will become 0101 ie y=5
        y = x ^ y;
        // binary equivalent of x  will become 1010 ie x=10
        x = x ^ y;
        System.out.println("The value of x is " + x
                           + " and the value of y is " + y);
    }
}


输出
The value of x is 10 and the value of y is 5