Python Programa para intercambiar dos números sin usar una tercera variable.
⚡ Resumen inteligente
Intercambio ping Dos números sin una tercera variable intercambian sus valores en el mismo lugar mediante suma aritmética y resta.tracción, el operador XOR bit a bit o trucos de aritmética bit a bit. Python También se puede intercambiar directamente con el desempaquetado de tuplas.

Las secciones siguientes cubren cuatro formas de realizar intercambios sin una variable temporal, además del desbordamiento aritmético.
En los lenguajes de programación, intercambiarping significa intercambiar los valores de dos variables. La variable puede contener un número, una cadena, una lista o matriz, un objeto, etc. La forma general de intercambioping es usar una variable temporal para almacenar valores. Por ejemplo,
Los pasos generales del intercambioping Los dos números son:
- Declarar una variable temporal C
- Asigne el valor de A a C, es decir, C = A. Ahora C = 20
- Asigne el valor de B a A, entonces A = 30
- Asigne el valor de C a B, entonces B = 20, ya que C tiene el valor 20.
Así es como se hace el intercambioping Esto se realiza con la ayuda de una variable temporal y funciona tanto para números enteros como para números de coma flotante.
Intercambiar usando ecuación aritmética
Como sabemos, intercambioping Intercambiar significa intercambiar el contenido de dos objetos, campos o variables. Intercambiar usando una operación aritmética significa realizar el intercambio usando una ecuación matemática, es decir, suma y resta.tracción.
Si se nos dan dos números y se nos pide que los intercambiemos sin usar una variable temporal, entonces, utilizando tres ecuaciones aritméticas, podemos intercambiar los números.
Pseudocódigo para intercambioping números mediante una operación aritmética:
A = A + B B = A - B A = A - B
Supongamos que tenemos dos números, A = 20 y B = 30.
Condición 1: A = A+B
Por lo tanto, el valor actual de A es 20+30 = 50
Condición 2: B = AB
Ahora, B = 50-30 = 20
Podemos ver que obtuvimos el valor de A en B.
Condición 3: A = AB
Finalmente, A = 50-20 = 30
A tiene el valor inicial de B.
Entonces simplemente intercambiamos los números.
Aquí está el programa para intercambiar dos números en C/C++:
#include<stdio.h> int main() { int a, b; printf("Enter value of A: "); scanf("%d", & a); printf("Enter value of B: "); scanf("%d", & b); printf("A = %d, B = %d", a, b); a = a + b; b = a - b; a = a - b; printf("\nNow, A = %d, B = %d", a, b); }
Salida:
Enter value of A: 20 Enter value of B: 30 A = 20 , B = 30 Now, A = 30 , B = 20
Programa en Python:
a = int(input("Enter value of A: ")) b = int(input("Enter value of B: ")) print("A = {} and B = {}".format(a, b)) a = a + b b = a - b a = a - b print("Now, A = {} and B = {}".format(a, b))
Salida:
Enter value of A: 20 Enter value of B: 30 A = 20 , B = 30 Now, A = 30 , B = 20
Ahora en PythonNi siquiera necesitamos realizar operaciones aritméticas. Podemos usar:
a,b = b,a
Aquí hay una demostración donde a=20, b=30;
Intercambio mediante XOR bit a bit Operator
Este método también se conoce como intercambio XOR. XOR significa OR exclusivo. En esta operación bit a bit, se utilizan dos bits como entrada para la operación XOR. Para obtener una única salida de la operación XOR, solo una de las entradas debe ser 1. De lo contrario, la salida será 0. La siguiente tabla muestra la salida para todas las combinaciones de las entradas A y B.
Necesitamos saber cómo funciona la operación XOR para intercambiar dos números mediante operaciones bit a bit. Aquí hay una tabla para XOR donde A y B son los valores de entrada.
| A | B | A X O B |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Si dos entradas tienen el mismo valor, la operación XOR da como resultado 0; de lo contrario, da 1. En este ejemplo, utilizaremos una operación XOR de 3. En la mayoría de los lenguajes de programación, XOR se representa con el símbolo “^”.
Supongamos que A=4 (en binario = 0100) y B=7 (en binario, 0111).
Condición 1: A = A^B
| A | 0 | 1 | 0 | 0 |
| B | 0 | 1 | 1 | 1 |
| A^B | 0 | 0 | 1 | 1 |
Ahora, A = 0011 (en binario).
Condición 2: B = A^B
| A | 0 | 0 | 1 | 1 |
| B | 0 | 1 | 1 | 1 |
| A^B | 0 | 1 | 0 | 0 |
Entonces B = 0100, que era el valor binario inicial de A.
Condición 3: A = A^B
| A | 0 | 0 | 1 | 1 |
| B | 0 | 1 | 0 | 0 |
| A^B | 0 | 1 | 1 | 1 |
Finalmente, A = 0111, que era el valor binario equivalente de B.
Programa en C/C++:
#include<stdio.h> int main() { int a, b; printf("Enter value of A: "); scanf("%d", & a); printf("Enter value of B: "); scanf("%d", & b); printf("A = %d, B = %d", a, b); a = a ^ b; b = a ^ b; a = a ^ b; printf("\nNow, A = %d, B = %d", a, b); }
Salida:
Enter value of A:4 Enter value of B:7 A=4, B=7 Now, A=7, B=4.
Programa en Python:
a = int(input("Enter value of A: ")) b = int(input("Enter value of B: ")) print("A = {} and B = {}".format(a, b)) a = a ^ b b = a ^ b a = a ^ b print("Now, A = {} and B = {}".format(a, b))
Salida:
Enter the value of A:10
Enter the value of B:15
A=10 and B=15
Now, A=15,B=10.
Intercambio Numbers Usando aritmética bit a bit
Este método es el mismo que el método aritmético, pero utilizaremos operaciones bit a bit como AND, OR y complemento para realizar sumas y restas.tracción. Antes de pasar a los pasos, echemos un vistazo rápido a “complemento”.
El complemento a 1 significa cambiar todos los 0 por 1 y los 1 por 0. Veamos un ejemplo.
- Supongamos que el número es 23, un número decimal.
- Al convertirlo a binario obtenemos 10111. Solo hay 5 bits, pero la computadora almacena los números en 8, 16, 32, 64… bits. Así que agreguemos un cero delante del binario. Esto no cambiará el valor original del número. Entonces se convertirá en 00010111.
- Como sabemos, el complemento a 1 significa cambiar todos los 0 a 1 y los 1 a 0, por lo que realizar el complemento a 1 sobre 00010111 da 11101000.
El complemento a uno se representa con el símbolo “~” en la mayoría de los lenguajes de programación. Al anteponer este símbolo a cualquier valor entero o de coma flotante, se obtiene el complemento a uno.
Y el complemento a 2 significa sumar el "1" binario al complemento a 1. Si hacemos complemento a 2 al número anterior:
- Binario = 00010111
- Complemento a uno = 11101000
- Complemento a 2:
11101000
+ 1
11101001
Entonces, el complemento a 2 es 11101001. Este es el binario para -23.
En resumen, para realizar el complemento a 2 de un número A, se verá así:
Complemento a 2 de A = (~A) + 1
Ahora supongamos que A=8 (binario 00001000), B=10 (00001010)
Condición 1: A = (A y B) + (A | B)
Es equivalente a A = A + B.
A y B = 00001000 y 00001010 = 00001000
Un | B = 00001000 | 00001010 = 00001010
Ahora, 00001000 + 00001010 = 00010010 (decimal 18)
Entonces A = 18
Condición 2: B = A + (~B) + 1
Es equivalente a B = AB
Aquí, B = A – B
De la discusión anterior, si necesitamos realizar subtracción, realizamos el complemento a dos del número negativo y luego lo sumamos.
Entonces, -B = ~B + 1
Ahora, B = 00010010 + (11110101) + 1 = 00001000
El valor de B equivale al decimal 8, que era el valor inicial.
Condición 3: A = A + (~B) + 1
Es equivalente a A = AB
Ahora, A = 00010010 + 11110111 + 1
A = 00001010 (equivale al decimal 10)
Finalmente, A obtuvo el valor de B. Por lo tanto, el intercambioping fue completado.
Programa en C/C++:
#include<stdio.h> int main() { int a, b; printf("Enter value of A: "); scanf("%d", & a); printf("Enter value of B: "); scanf("%d", & b); printf("A = %d, B = %d", a, b); a = (a & b) + (a | b); b = a + ~b + 1; a = a + ~b + 1; printf("\nNow, A = %d, B = %d", a, b); }
Salida:
Enter the value of A: 8 Enter the value of B:10 A=8, B=10 Now, A=10, B=8
Programa en Python:
a = int(input("Enter value of A: ")) b = int(input("Enter value of B: ")) print("A = {} and B = {}".format(a, b)) a = (a & b) + (a | b) b = a + ~b + 1 a = a + ~b + 1 print("Now, A = {} and B = {}".format(a, b))
Salida:
Enter the value of A: 25 Enter the value of B: 25 A = 25 and B = 25 Now, A = 25 and B = 25
¿Qué es el desbordamiento aritmético?
El término desbordamiento significa exceder el límite. El desbordamiento aritmético implica que el resultado de cualquier operación aritmética excede el rango o límite de la representación numérica de la arquitectura del ordenador. Por ejemplo, si un número se divide entre cero, se vuelve infinito y el sistema numérico del ordenador no puede almacenarlo en 32 o 64 bits.
Representación de números enteros en un sistema de 32 bits
La consecuencia del desbordamiento aritmético puede ser:
- La suma de dos números positivos se convierte en negativa, porque el bit de signo podría convertirse en 1, lo que significa un número negativo.
- La suma de dos números negativos se convierte en un número positivo, porque el bit de signo puede convertirse en 0, lo que significa un número positivo.



