Si XOR 2 números, no solo me dan resultados idénticos si los números son los mismos?

StackOverflow https://stackoverflow.com/questions/2481587

  •  21-09-2019
  •  | 
  •  

Pregunta

Por ejemplo, supongamos que tengo x XOR y = y XOR x = z. ¿Es posible tener algo como a XOR b = z?

¿Fue útil?

Solución

Sí.

z = y porque x ^ y ^ x = y

Por lo tanto, es perfectamente posible que una combinación a ^ b = y = z.

De hecho, por cada a existe una b tal que a ^ b = z. Para calcular que, b = z ^ a.

Tenga en cuenta que XOR es conmutativa: . Esto significa que x ^ y = y ^ x

Otros consejos

Respuesta corta: Sí

Respuesta larga: XOR es una operación binaria, que funciona en los bits individuales y es conmutativa.

Tiene la tabla de verdad:

A B  Q
0 0  0
0 1  1
1 0  1
1 1  0

A medida que el número se compone de estos bits, entonces el resultado será el mismo, siempre que para cada posición de bit los dos bits tienen el mismo resultado. Por ejemplo tomar los números 2 de ocho bits 113 y 42

113 = 01110001
42  = 00101010
XOR = 01011011 = 91

pero si yo cambiaré el cuarto bit desde la izquierda llego

97  = 01100001
58  = 00111010
XOR = 01011011 = 91

Así que sí otra vez ...

Sí. Como prueba degenerado, XORing un número consigo misma siempre resulta en 0.

XOR, devolverá verdadero si ambos parámetros son diferentes, suponiendo que los parámetros son valores booleanos de todos modos. Esto es diferente de o, que devolverá verdadero si cualquiera de los parámetros es cierto, y NOR, que devolverá cierto sólo si ambos son falsas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top