Exclusivo o"

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 1 de abril de 2022; las comprobaciones requieren 2 ediciones .
Exclusivo o"
Adición de módulo 2, XOR

diagrama de Venn
mesa de la verdad
puerta lógica
formas normales
Disyuntivo
conjuntival
Polinomio de Zhegalkin
Membresía en clases precompletas
Guarda 0
Guarda 1 No
Monótono No
lineal
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.

Notación

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 .

Propiedades

Álgebra booleana

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 .

Programación

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 .

Relación con el lenguaje natural

En lenguaje natural, la operación "suma de módulo" equivale a dos expresiones:

  1. "el resultado es verdadero (igual a 1) si A no es igual a B (A≠B)";
  2. " si A no es igual a B (A≠B), entonces verdadero(1)".

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:

  1. verdadero si alguno es verdadero o ambos ( " al menos uno de los dos").
  2. verdadero si o es verdadero , pero no ambos (" solo uno de dos").

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.

Computación Cuántica

En las computadoras cuánticas, el análogo de la suma módulo 2 es la puerta CNOT .

Tecnología digital

Véase también

Nota

  1. Shilo VL Microcircuitos digitales populares: Manual.- M.: Radio y comunicación, 1987.- 352 p. - (Radioteca de Masas. Edición 1111).

Enlaces externos