Exclusivo o" | |
---|---|
Adición de módulo 2, XOR | |
| |
mesa de la verdad | |
puerta lógica | |
formas normales | |
Disyuntivo | |
conjuntival | |
Polinomio de Zhegalkin | |
Membresía en clases precompletas | |
Guarda 0 | Sí |
Guarda 1 | No |
Monótono | No |
lineal | Sí |
Auto-dual | No |
"O" exclusivo ( suma de módulo 2 , XOR , disyunción estricta , suma bit a bit , inversión de máscara , suma de Zhegalkin , resta lógica , disparidad lógica ): función booleana , así como operación lógica y bit a bit, en el caso de dos variables, el resultado de la operación es verdadero si y solo si uno de los argumentos es verdadero y el otro es falso. Para una función de tres (suma ternaria módulo 2) o más variables, el resultado de la operación será verdadero sólo cuando el número de argumentos igual a 1 que componen el conjunto actual sea impar. Tal operación surge naturalmente en el anillo de residuos módulo 2 , de ahí el nombre de la operación.
La adición del Módulo 2 se llama "o exclusivo" y "disyunción estricta" para distinguirlo del "o" lógico "ordinario" (no exclusivo) - disyunción lógica no estricta . En teoría de conjuntos, la suma módulo 2 corresponde a la operación de la diferencia simétrica de dos conjuntos.
La grabación puede ser prefijo (" registro polaco "): el signo de operación se coloca antes de los operandos, infijo : el signo de operación se coloca entre los operandos y sufijo : el signo de operación se coloca después de los operandos. Cuando el número de operandos es más de dos, las notaciones de prefijo y posfijo son más económicas que la notación de infijo. La notación más común es: ^ a ≠ b,
Unicode tiene símbolos para la suma módulo 2: U+22BB ⊻ xor , U+2295 ⊕ círculo más y U+2A27 ⨧ signo más con subíndice dos , U+2A52 ⩒ lógico o con un punto arriba , y un símbolo para módulo suma 2: U +2A0A ⨊ módulo dos suma .
En álgebra de Boole, la suma módulo 2 es una función de dos, tres o más variables (también son los operandos de una operación, también son los argumentos de una función). Las variables pueden tomar valores de un conjunto . El resultado también pertenece al conjunto . El resultado se calcula según una regla simple, o según la tabla de verdad . En lugar de valores , se puede utilizar cualquier otro par de caracteres adecuados, por ejemplo, o o "falso", "verdadero", pero al mismo tiempo es necesario definir la precedencia, por ejemplo, .
tablas de verdad:
0 | 0 | 0 |
0 | una | una |
una | 0 | una |
una | una | 0 |
Regla: el resultado es igual si ambos operandos son iguales; en todos los demás casos el resultado es .
0 | 0 | 0 | 0 |
0 | 0 | una | una |
0 | una | 0 | una |
0 | una | una | 0 |
una | 0 | 0 | una |
una | 0 | una | 0 |
una | una | 0 | 0 |
una | una | una | una |
Regla: el resultado es , si el número de operandos es par (el cero también es un número par), de lo contrario el resultado es .
En C / C++ , Java , C# , Ruby , PHP , JavaScript , Python , etc., la operación de complemento bit a bit se indica con el símbolo " ^ ", en Pascal , Delphi , Ada , Visual Basic con la palabra reservada xor , en ensamblador lenguaje - el comando lógico del mismo nombre. En este caso, la suma de módulo 2 se realiza para todos los bits del operando izquierdo y derecho en pares. Por ejemplo,
si
después
La operación "o" exclusiva para valores de tipo booleano (verdadero, falso) se realiza de manera diferente en diferentes lenguajes de programación. Por ejemplo, Delphi usa el operador XOR incorporado (ejemplo: condición1 xor condición2 ). En C , desde el estándar C99 , el operador " ^ " en los operandos de tipo booleano devuelve el resultado de aplicar la operación lógica XOR. En C++ , el operador “ ^ ” para el tipo bool booleano devuelve el resultado de acuerdo con las reglas descritas, mientras que para otros tipos se aplica bit a bit.
El uso del "o" exclusivo bit a bit le permite intercambiar los valores de las variables enteras sin usar memoria adicional .
En lenguaje natural, la operación "suma de módulo" equivale a dos expresiones:
A menudo se señala la similitud entre la adición del módulo 2 y la construcción "ya sea ... o ..." en lenguaje natural. El enunciado compuesto "ya sea A o B" es verdadero cuando A o B es verdadero/falso, pero no ambos; de lo contrario, la declaración compuesta es falsa. Esto corresponde exactamente a la definición de una operación en álgebra booleana, si "verdadero" se denota por , y "falso" por .
Esta operación a menudo se compara con la disyunción porque tienen propiedades muy similares y ambas son similares a la unión "o" en el habla cotidiana. Compare las reglas para estas operaciones:
La operación excluye la última opción ("ambos a la vez") y por eso se llama "OR" exclusivo. La operación incluye la última opción ("ambos a la vez") y, a veces, se denomina "O" inclusivo por este motivo. La ambigüedad en el lenguaje natural es que la conjunción "o" se puede usar en ambos casos.
En las computadoras cuánticas, el análogo de la suma módulo 2 es la puerta CNOT .
operaciones booleanas | |
---|---|
|