XOR

XOR

Сложе́ние по модулю 2 (исключа́ющее «ИЛИ», XOR, «сумма по модулю 2») — ло­ги­чес­кая опе­ра­ция, по сво­ему при­ме­не­нию мак­си­маль­но при­бли­жен­ная к грам­ма­ти­чес­кой кон­струк­ции «либо … либо …».

Это бинарная инфиксная опе­ра­ция, то есть она имеет два опе­ранда и ста­вит­ся между ними. Чаще всего встре­ча­ют­ся сле­ду­ю­щие ва­ри­анты за­пи­си:
~a ^ ~b, ~a \oplus b, a \oplus_2 b, a + b, a +_2 b, a ~XOR~ b.

Содержание

Булева алгебра

В булевой алгебре сложение по модулю 2 — это функция двух переменных (они же — операнды операции). Переменные могут принимать значения из множества ~\{0, 1\}. Результат также принадлежит множеству ~\{0, 1\}. Вычисление результата производится по простому правилу, либо по таблице истинности. Вместо значений ~0, 1 может использоваться любая другая пара подходящих символов, например ~false, true или ~F, T или «ложь», «истина».

Правило: результат равен ~0, если оба операнда равны; во всех остальных случаях результат равен ~1.

Таблица истинности:

~a ~b ~a \oplus b
~0 ~0 ~0
~0 ~1 ~1
~1 ~0 ~1
~1 ~1 ~0

Программирование

В языках C/C++ (а также Java, C#, Ruby, PHP, JavaScript и т. д.) эта операция обозначается символом «^», в языках Паскаль, Delphi, Ada - зарезервированным словом XOR, в языке ассемблера - одноименной логической командой. Сложение по модулю 2 выполняется для всех битов левого и правого операнда попарно. Например,

если
a = ~01100101_2
b = ~00101001_2
то
a ^ b = ~01001100_2

Выполнение операции XOR для значений логического типа (true, false) производится в разных языках программирования по-разному. Например в Delphi используется встроенный оператор XOR (пример: condition1 xor condition2). В языке C, начиная со стандарта С++ оператор «^» для логического типа bool возвращает результат согласно описанным правилам, для остальных же типов проихводится его побитовое применение. Перегрузка для стандартных типов невозможна, но операцию XOR над ними можно реализовать, исходя из принципа "исключающего ИЛИ". Выглядит это так:

(condition1 || condition2) && (condition1 != condition2)

(при этом нет разницы, применяются ли побитовые операторы & и |, или же логические && и ||)

Связь с естественным языком

Часто указывают на сходство между сложением по модулю 2 и конструкцией «либо … либо …» в естественном языке. Составное утверждение «либо A, либо B» считается истинным, когда истинно либо A, либо B, но не оба сразу; в противном случае составное утверждение ложно. Это в точности соответствует определению операции в булевой алгебре, если «истину» обозначать как 1, а «ложь» как 0.

Эту операцию нередко сравнивают с дизъюнкцией потому, что они очень похожи по свойствам, и обе имеют сходство с союзом «или» в повседневной речи. Сравните правила для этих операций:

  1. A \lor B истинно, если истинно ~A или ~B, или оба сразу.
  2. A \oplus B истинно, если истинно ~A или ~B, но не оба сразу.

Операция \oplus исключает последний вариант («оба сразу») и по этой причине называется исключающим «ИЛИ». Операция \lor включает последний вариант («оба сразу») и по этой причине иногда называется включающим «ИЛИ». Неоднозначность естественного языка заключается в том, что союз «или» может применяться в обоих случаях.

См. также


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "XOR" в других словарях:

  • XOR — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. OU exclusif souvent appelée XOR (eXclusive OR), est un opérateur logique X Or, série télévisée japonaise Xor, jeu vidéo de 1987 développé par Astral… …   Wikipédia en Français

  • Xor — Xor,   Exclusive Or …   Universal-Lexikon

  • XOR — simb. TS mat. OR esclusivo …   Dizionario italiano

  • XOR — Gatter Typen   NOT AND NAND OR NOR XOR XNOR Ein XOR Gatter (von …   Deutsch Wikipedia

  • Xor — Gatter Typen   NOT AND NAND OR NOR XOR XNOR Ein XOR Gatter (von …   Deutsch Wikipedia

  • xörək — is. Bişirilib yeyilən şey, yemək, bişmiş. Ət xörəyi. Xəmir xörəyi. Xörək hazırlamaq. – Xörəyin yeyilməyi iki saat çəkdi. . . C. M.. Hacı Səmədin xörəyin üstündən çay içmək adəti idi. S. S. A.. Xarisə qızardılmış qiymədən hazırlanırdı və bütün cah …   Azərbaycan dilinin izahlı lüğəti

  • Xor — Сложение по модулю 2 (исключающее «ИЛИ», XOR, «сумма по модулю 2») ло­ги­чес­кая опе­ра­ция, по сво­ему при­ме­не­нию мак­си­маль­но при­бли­жен­ная к грам­ма­ти­чес­кой кон­струк­ции «либо … либо …». Это бинарная инфиксная опе­ра­ция, то есть… …   Википедия

  • xor — 1. <yun.> Hər hansı vokal əsəri bir vaxtda ifa edən oxuyanlar dəstəsi. Xor dəstəsi. Uşaq xoru. – <Müəllif:> Biz də yoldaşlarımızla xor təşkil edirik. T. Ş. S.. <Rüstəm kişi:> Briqadir Şirzadın yaxşı səsi var. Xor dərnəyi… …   Azərbaycan dilinin izahlı lüğəti

  • XOR — El término XOR puede referirse a: La puerta lógica XOR, en electrónica. El operador XOR, en lógica, matemáticas y programación El cifrado XOR Esta página de desambiguación cataloga artículos relacionados con el mismo título. Si llegaste aquí a… …   Wikipedia Español

  • XOR — 1. noun a) The connective exclusive or . The XOR of (0,0) is 0; (0,1) is 1; (1,0) is 1; and (1,1) is 0. b) A logic gate that implements exclusive or . XOR can be used to add bits without carrying. 2 …   Wiktionary


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»