Este programa Java intercambia dos números utilizando el operador XOR bit a bit. Antes de pasar al programa, veamos qué es un operador XOR bit a bit: un XOR bit a bit compara los bits correspondientes de dos operandos y devuelve 1 si son iguales y 0 si no son iguales. Por ejemplo:

num1 = 11; /* equal to 00001011*/
num2 = 22; /* equal to 00010110 */

num1 ^ num2 compara los bits correspondientes de num1 y num2 y genera 1 si no son iguales, de lo contrario devuelve 0. En nuestro ejemplo, devolvería 29 que es equivalente a 00011101

Escribámoslo en un programa Java:

Ejemplo: intercambiar dos números usando el operador bit a bit

import java.util.Scanner;
public class JavaExample 
{
    public static void main(String args[])
    {
        int num1, num2;
        Scanner scanner = new Scanner(System.in);
        System.out.print("Enter first number:");
        num1 = scanner.nextInt();
        System.out.print("Enter second number:");
        num2 = scanner.nextInt();
        /* To make you understand, lets assume I am going
         * to enter value of first number as 10 and second 
         * as 5. Binary equivalent of 10 is 1010 and 5 is
         * 0101
         */
        
        //num1 becomes 1111 = 15
        num1 = num1 ^ num2;
        //num2 becomes 1010 = 10
        num2 = num1 ^ num2;
        //num1 becomes 0101 = 5
        num1 = num1 ^ num2;
        scanner.close();
        System.out.println("The First number after swapping:"+num1);
        System.out.println("The Second number after swapping:"+num2);
    }
}

Producción:

Enter first number:10
Enter second number:5
The First number after swapping:5
The Second number after swapping:10
leer  Programa Java para imprimir Pascal Triangle

Por avivcas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *