Исключающее или не формула. Элементы исключающее или

Часто, для того чтобы продемонстрировать ограниченные возможности однослойных персептронов при решении задач прибегают к рассмотрению так называемой проблемы XOR – исключающего ИЛИ .

Суть задачи заключаются в следующем. Дана логическая функция XOR – исключающее ИЛИ. Это функция от двух аргументов, каждый из которых может быть нулем или единицей. Она принимает значение , когда один из аргументов равен единице, но не оба, иначе . Проблему можно проиллюстрировать с помощью однослойной однонейронной системы с двумя входами, показанной на рисунке ниже.

Обозначим один вход через , а другой через , тогда все их возможные комбинации будут состоять из четырех точек на плоскости. Таблица ниже показывает требуемую связь между входами и выходом, где входные комбинации, которые должны давать нулевой выход, помечены и , единичный выход – и .

Точки Значение Значение Требуемый выход
0 0 0
1 0 1
0 1 1
1 1 0

Один нейрон с двумя входами может сформировать решающую поверхность в виде произвольной прямой. Для того, чтобы сеть реализовала функцию XOR, заданную таблицей выше, нужно расположить прямую так, чтобы точки были с одной стороны прямой, а точки – с другой. Попытавшись нарисовать такую прямую на рисунке ниже, убеждаемся, что это невозможно. Это означает, что какие бы значения ни приписывались весам и порогу, однослойная нейронная сеть неспособна воспроизвести соотношение между входом и выходом, требуемое для представления функции XOR.

Однако функция XOR легко формируется уже двухслойной сетью, причем многими способами. Рассмотрим один из таких способов. Модернизуем сеть на рисунке, добавив еще один скрытый слой нейронов:

Отметим, что данная сеть дана как есть, т.е. можно считать, что она уже обучена. Цифры над стрелками показывают значения синаптических весов. В качестве функции активации применим функцию единичного скачка с порогом , имеющую следующий график:

Тогда результат работы такой нейронной сети можно представить в виде следующей таблицы:

Точки Значение Значение Требуемый выход
0 0 0 0 0 0
1 0 1 1 0 1
0 1 1 0 1 1
1 1 0 0 0 0

Каждый из двух нейрон первого слоя формирует решающую поверхность в виде произвольной прямой (делит плоскость на две полуплоскости), а нейрон выходного слоя объединяет эти два решения, образуя решающую поверхность в виде полосы, образованной параллельными прямыми нейронов первого слоя:

Нейронная сеть, используемая в этой статье для решения задачи XOR, примитивна и не использует всех возможностей многослойных сетей. Очевидно, что многослойные нейронные сети обладают большей представляющей мощностью, чем однослойные, только в случае присутствия нелинейности. А в данной сети применена пороговая линейная функция активации. Такую сеть нельзя будет обучить, например, применив алгоритм обратного распространения ошибки.

Поведение

Элементы Исключающее ИЛИ, Исключающее ИЛИ-НЕ, Нечётность и Чётность вычисляют соответствующую функцию от значений на входах и выдают результат на выход.

По умолчанию, неподключенные входы игнорируются - то есть, если входы действительно не имеют ничего подключенного к ним - даже провода. Таким образом, вы можете добавить 5-входовый элемент, но подключить только два входа, и он будет работать как 2-входовый элемент; это избавляет вас от необходимости беспокоиться о настройке количества входов каждый раз при создании элемента. (Если все входы не подключены, то на выходе значение ошибки X .) Некоторые пользователи, однако, предпочитают, чтобы Logisim настаивал, чтобы все входы были подключены, поскольку это соответствует реальным элементам. Вы можете включить это поведение, выбрав меню Проект > Параметры…, перейдя на вкладку Моделирование, и выбрав вариант Ошибка для неопределённых входов для Выход элемента при неопределённости.

Двухвходовая таблица истинности для элементов следующая.

x y Исключающее ИЛИ Исключающее ИЛИ-НЕ Нечётность Чётность
0 0 0 1 0 1
0 1 1 0 1 0
1 0 1 0 1 0
1 1 0 1 0 1

Как вы можете видеть, элементы Нечётность и Исключающее ИЛИ ведут себя одинаково в случае двух входов; аналогично, элементы Чётность и Исключающее ИЛИ-НЕ ведут себя одинаково. Но если входов с определённым значением больше двух, то элемент Исключающее ИЛИ будет давать на выходе 1, когда единица строго на одном входе, тогда как элемент Нечётность даст на выходе 1, когда единица на нечётном количестве входов. Элемент Исключающее ИЛИ-НЕ будет давать на выходе 1, когда входов с единицей строго не один, тогда как элемент Чётность даст 1, когда входов с единицей чётное количество. Элементы Исключающее ИЛИ и Исключающее ИЛИ-НЕ имеют атрибут, названный Многовходовое поведение, который позволяет настроить их на использование поведения элементов Нечётность и Чётность.

Если на каких-либо входах значение ошибки (например, если противоречивые значения поступают на один и тот же провод) или плавающее значение, то на выходе будет значение ошибки.

Многобитные версии каждого элемента будут выполнять свои однобитные преобразования над входами поразрядно.

Примечание: многие специалисты утверждают, что поведение фигурного элемента Исключающее ИЛИ должно соответствовать поведению элемента Нечётность, но по этому вопросу нет согласия. Поведение Logisim по умолчанию для элемента Исключающее ИЛИ основано на стандарте IEEE 91. Это также согласуется с интуитивным пониманием термина Исключающее ИЛИ : официант, спрашивающий, хотите вы гарнир из картофельного пюре, моркови, зеленого горошка, или шинкованной капусты, примет только один выбор, а не три, независимо от того, что вам могут сказать некоторые специалисты. (Должен признать, однако, что я не подвергал это заявление серьезным испытаниям.) Вы можете настроить элементы Исключающее ИЛИ и Исключающее ИЛИ-НЕ на использование одного из вариантов, меняя его атрибут Многовходовое поведение.

Контакты (предполагается, что компонент направлен на восток)

Западный край (входы, разрядность соответствует атрибуту Биты данных)

Входы компонента. Их будет столько, сколько указано в атрибуте Количество входов.

Заметьте, что если вы используете фигурные элементы, то западный край элементов Исключающее ИЛИ и Исключающее ИЛИ-НЕ будет искривлён. Тем не менее, входные контакты расположены вряд. Logisim отрисовывает короткие отрезки чтобы показать это; если вы перекроете отрезок, программа будет без предупреждений предполагать, что вы не хотели перекрыть его. При использовании "Вида для печати", эти отрезки не будут отрисованы, если не подключены к проводам.

Восточный край (выход, разрядность соответствует атрибуту Биты данных)

Выход элемента, значение на котором вычисляется на основании текущих значений на входах, как описано выше.

Атрибуты

Когда компонент выбран, или уже добавлен, клавиши от 0 до 9 меняют его атрибут Количество входов, комбинации от Alt-0 до Alt-9 меняют его атрибут Биты данных, а клавиши со стрелками меняют его атрибут Направление.

Направление Направление компонента (его выхода относительно его входов). Биты данных Разрядность входов и выходов компонента. Размер элемента Определяет, следует отрисовывать широкую или узкую версию компонента. Это не влияет на количество входов, которое определяется атрибутом Количество входов; правда, если количество входов превышает 3 (для узкого компонента) или 5 (для широкого), то элемент будет отрисовываться с "крыльями", чтобы вместить запрошенное количество входов. Количество входов Определяет, сколько контактов на западном крае будет иметь компонент. Многовходовое поведение (только для Исключающее ИЛИ и Исключающее ИЛИ-НЕ) Когда входов три или более, то значение на выходе элементов Исключающее ИЛИ и Исключающее ИЛИ-НЕ будет основано или на том, что 1 строго на одном входе (по умолчанию), или на нечётном количестве входов.

Так же, как и стандартные Булевы выражения, информация на входах и выходах различных логических элементов или логических схем может быть собрана в единую таблицу – таблицу истинности.

Таблица истинности дает наглядное представление о системе логических функций. В таблице истинности отображаются сигналы на выходах логических элементов при всех возможных комбинациях сигналов на их входах.

В качестве примера, рассмотрим логическую схему с двумя входами и одним выходом. Входные сигналы отметим как «А» и «В», а выход «Q». Есть четыре (2²) возможных комбинаций входных сигналов, которые можно подать на эти два входа («ON — наличие сигнала» и «OFF — отсутствие сигнала»).

Однако, когда речь идет о логических выражениях и, особенно о таблице истинности логических элементов, вместо общего понятия «наличие сигнала» и «отсутствие сигнала» используют битные значения, которые представляют собой логический уровень «1» и логический уровень «0» соответственно.

Тогда четыре возможные комбинации «А» и «В» для 2-входного логического элемента можно представить в следующем виде:

  1. «OFF» — «OFF» или (0, 0)
  2. «OFF» — «ON» или (0, 1)
  3. «ON» — «OFF» или (1, 0)
  4. «ON» — «ON» или (1, 1)

Следовательно, у логической схемы имеющей три входа будет восемь возможных комбинаций (2³) и так далее. Для обеспечения легкого понимания сути таблицы истинности, мы будем изучать ее только на простых логических элементах с числом входов не превышающим двух. Но, несмотря на это, принцип получения логических результатов для многовходных элементов схемы остается таким же.

Практически, таблица истинности состоит из одного столбца для каждой из входных переменных (например, А и В), и один последний столбец для всех возможных результатов логической операции (Q). Следовательно, каждая строка таблицы истинности содержит один из возможных вариантов входных переменных (например, A = 1, B = 0), и результат операции с этими значениям.

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

Элемент «И»

Для логического элемента «И» выход Q будет содержать лог.1, только если на оба входа («А» и «В») будет подан сигнал лог.1

Микросхемы, содержащие логический элемент «И»:

  • К155ЛИ1, аналог SN7408N
  • К155ЛИ5 с открытым коллектором, аналог SN74451N
  • К555ЛИ1, аналог SN74LS08N
  • К555ЛИ2 с открытым коллектором, аналог SN74LS09N

Элемент «ИЛИ»

Выход Q, элемента «ИЛИ», будет иметь лог.1, если на любой из двух входов или же на оба входа сразу подать лог.1


Микросхемы, содержащие логический элемент «ИЛИ»:

  • К155ЛЛ1, аналог SN7432N
  • К155ЛЛ2 с открытым коллектором, аналог SN75453N
  • К555ЛЛ1, аналог SN74LS32N

Элемент «НЕ»

В данном случае выход Q, логического элемента «НЕ», будет иметь сигнал противоположный входному сигналу.

Микросхемы, содержащие логический элемент «НЕ»:

  • К155ЛН1, аналог SN7404N
  • К155ЛН2 с открытым коллектором, аналог SN7405N
  • К155ЛН3, аналог SN7406N
  • К155ЛН5 с открытым коллектором, аналог SN7416N
  • К155ЛН6, аналог SN7466N

Элемент «И-НЕ»

На выходе Q элемента «И-НЕ» будет лог.1 если на обоих входах одновременно отсутствует сигнал лог.1

Микросхемы, содержащие логический элемент «И-НЕ»:

  • К155ЛА3, аналог SN7400N
  • К155ЛА8, аналог SN7401N
  • К155ЛА9 с открытым коллектором, аналог SN7403N
  • К155ЛА11 с открытым коллектором, аналог SN7426N
  • К155ЛА12 с открытым коллектором, аналог SN7437N
  • К155ЛА13 с открытым коллектором, аналог SN7438N
  • К155ЛА18 с открытым коллектором, аналог SN75452N

Элемент «ИЛИ-НЕ»

Только если на оба входа логического элемента «ИЛИ-НЕ» подать лог.0 мы получим на его выходе Q сигнал соответствующий лог.1

Микросхемы, содержащие логический элемент «ИЛИ-НЕ»:

  • К155ЛЕ1, аналог SN7402N
  • К155ЛЕ5, аналог SN7428N
  • К155ЛЕ6, аналог SN74128N

Элемент «Исключающее ИЛИ»

В данном случае выход Q будет содержать лог.1, если на вход элемента «Исключающее ИЛИ» поданы два противоположных друг другу сигнала.

Микросхемы, содержащие логический элемент «Исключающее ИЛИ»:

  • К155ЛП5, аналог SN7486N

Подведем итог, собрав все полученные ранее результаты работы логических элементов в единую таблицу истинности:

В данной статье расскажем что такое логические элементы, рассмотрим самые простые логические элементы.

Любое цифровое устройство — персональный компьютер, или современная система автоматики состоит из цифровых интегральных микросхем (ИМС), которые выполняют определённые сложные функции. Но для выполнения одной сложной функции необходимо выполнить несколько простейших функций. Например, сложение двух двоичных чисел размером в один байт происходит внутри цифровой микросхемы называемой «процессор» и выполняется в несколько этапов большим количеством логических элементов находящихся внутри процессора. Двоичные числа сначала запоминаются в буферной памяти процессора, потом переписываются в специальные «главные» регистры процессора, после выполняется их сложение, запоминание результата в другом регистре, и лишь после результат сложения выводится через буферную память из процессора на другие устройства компьютера.

Процессор состоит из функциональных узлов: интерфейсов ввода-вывода, ячеек памяти – буферных регистров и «аккумуляторов», сумматоров, регистров сдвига и т.д. Эти функциональные узлы состоят из простейших логических элементов, которые, в свою очередь состоят из полупроводниковых транзисторов, диодов и резисторов. При конструировании простых триггерных и других электронных импульсных схем, сложные процессоры не применить, а использовать транзисторные каскады – «прошлый век». Тут и приходят на помощь – логические элементы .

Логические элементы , это простейшие «кубики», составные части цифровой микросхемы, выполняющие определённые логические функции. При этом, цифровая микросхема может содержать в себе от одного, до нескольких единиц, десятков, …и до нескольких сотен тысяч логических элементов в зависимости от степени интеграции. Для того, чтобы разобраться, что такое логические элементы , мы будем рассматривать самые простейшие из них. А потом, наращивая знания, разберёмся и с более сложными цифровыми элементами.

Начнём с того, что единица цифровой информации это «один бит». Он может принимать два логических состояния – логический ноль «0», когда напряжение равно нулю (низкий уровень), и состояние логической единицы «1», когда напряжение равно напряжению питания микросхемы (высокий уровень).

Поскольку простейший логический элемент это электронное устройство, то это означает, что у него есть входы (входные выводы) и выходы (выходные выводы). И входов и выходов может быть один, а может быть и больше.

Для того, чтобы понять принципы работы простейших логических элементов используется «таблица истинности» . Кроме того, для понимания принципов работы логических элементов, входы, в зависимости от их количества обозначают: Х1, Х2, … ХN, а выходы: Y1, Y2, … YN.

Функции, выполняемые простейшими логическими элементами, имеют названия. Как правило, впереди функции ставится цифра, обозначающая количество входов. Простейшие логические элементы всегда имеют лишь один выход.

Рассмотрим простейшие логические элементы

«НЕ» (NOT) – функция отрицания (инверсии сигнала). Потому его чаще называют — «инвертор» . Графически, инверсия обозначается пустым кружочком вокруг вывода элемента (микросхемы). Обычно кружок инверсии ставится у выхода, но в более сложных логических элементах, он может стоять и на входе. Графическое обозначение элемента «НЕ» и его таблица истинности представлены на рисунке слева.

У элемента «НЕ» всегда один вход и один выход. По таблице истинности следует, что при наличии на входе элемента логического нуля, на выходе будет логическая единица. И наоборот, при наличии на входе логической единицы, на выходе будет логический ноль. Цифра «1» внутри прямоугольника обозначает функцию «ИЛИ», её принято рисовать и внутри прямоугольника элемента «НЕ», но это ровным счётом ничего абсолютно не значит.

Обозначение D1.1 означает, что D — цифровой логический элемент, 1 (первая) — номер микросхемы в общей схеме, 1 (вторая) — номер элемента в микросхеме. Точно также расшифровываются и другие логические элементы.

Часто, чтобы отличить цифровые микросхемы от аналоговых микросхем, применяют обозначения из двух букв: DD – цифровая микросхема, DA – аналоговая микросхема. В последующем, мы не будем заострять внимание на это обозначение, а вернёмся лишь тогда, когда это будет необходимым.

Самой распространённой микросхемой «транзисторно-транзисторной логики» (ТТЛ), выполняющей функцию «НЕ», является интегральная микросхема (ИМС) К155ЛН1, внутри которой имеется шесть элементов «НЕ». Нумерация выводов этой микросхемы показана справа.

«И» (AND) – функция сложения (если на всех входах единица, то на выходе будет единица, в противном случае, если хотя бы на одном входе ноль, то и на выходе всегда будет ноль). В алгебре-логике элемент «И» называют «конъюнктор» . Графическое обозначение элемента «2И» и его таблица истинности представлены слева.

Название элемента «2И» обозначает, что у него два входа, и он выполняет функцию «И» . На схеме внутри прямоугольника микросхемы рисуется значок «&» , что на английском языке означает «AND» (в переводе на русский — И).

По таблице истинности следует, что на выходе элемента «И» будет логическая единица только в одном случае — когда на обоих входах будет логическая единица. Если хотя бы на одном входе ноль, то и на выходе будет ноль.

Самой распространённой микросхемой «транзисторно-транзисторной логики» (ТТЛ) , выполняющей функцию «2И», является интегральная микросхема (ИМС) К155ЛИ1, внутри которой имеется четыре элемента «2И». Нумерация выводов этой микросхемы показана справа.

Для того, чтобы вам было понятнее что такое «2И», «3И», «4И», и т.д., приведу графическое обозначение и таблицу истинности элемента «3И».

По таблице истинности следует, что на выходе элемента «3И» будет логическая единица только в том случае — когда на всех трёх входах будет логическая единица. Если хотя бы на одном входе будет логический ноль, то и на выходе элемента также будет логический ноль. Самой распространённой микросхемой ТТЛ, выполняющей функцию «3И», является микросхема К555ЛИ3, внутри которой имеется три элемента «3И».

«И-НЕ» (NAND) – функция сложения с отрицанием (если на всех входах единица, то на выходе будет ноль, в противном случае на выходе всегда будет единица). Графическое обозначение элемента «2И-НЕ» и его таблица истинности приведены слева.

По таблице истинности следует, что на выходе элемента «2И-НЕ» будет логический ноль только в том случае, если на обоих входах будет логическая единица. Если хотя бы на одном входе ноль, то на выходе будет единица.

Самой распространённой микросхемой ТТЛ, выполняющей функцию «2И-НЕ», является ИМС К155ЛА3, а микросхемами КМОП (комплементарный металлооксидный полупроводник) – ИМС К561ЛА7 и К176ЛА7, внутри которых имеется четыре элемента «2И-НЕ». Нумерация выводов этих микросхем показана справа.

Сравнив таблицы истинности элемента «2И-НЕ» и элемента «2И» можно догадаться об эквивалентности схем:

Добавив к элементу «2И» элемент «НЕ» мы получили элемент «2И-НЕ». Так можно собрать схему, если нам необходим элемент «2И-НЕ», а у нас в распоряжении имеются только элементы «2И» и «НЕ».

И наоборот:

Добавив к элементу «2И-НЕ» элемент «НЕ» мы получили элемент «2И». Так можно собрать схему, если нам необходим элемент «2И», а у нас в распоряжении имеются только элементы «2И-НЕ» и «НЕ».

Аналогичным образом, путём соединения входов элемента «2И-НЕ» мы можем получить элемент «НЕ»:

Обратите внимание, что было введено новое в обозначении элементов – дефис, разделяющий правую и левую часть в названии «2И-НЕ». Этот дефис непременный атрибут при инверсии на выходе (функции «НЕ»).

«ИЛИ» (OR) – функция выбора (если хотя бы на одном из входов – единица, то на выходе – единица, в противном случае на выходе всегда будет ноль). В алгебре-логике, элемент «ИЛИ» называют «дизъюнктор». Графическое обозначение элемента «2ИЛИ» и его таблица истинности приведены слева.

Самой распространённой микросхемой ТТЛ, выполняющей функцию «2ИЛИ», является ИМС К155ЛЛ1, внутри которой имеется четыре элемента «2ИЛИ». Нумерация выводов этой микросхемы показана справа.

Предположим, что нам в схеме необходим элемент, выполняющий функцию «2ИЛИ», но у нас есть в распоряжении только элементы «НЕ» и «2И-НЕ», тогда можно собрать схему, которая будет выполнять функцию «2ИЛИ»:

«ИЛИ-НЕ» (NOR) – функция выбора (если хотя бы на одном из входов – единица, то на выходе – ноль, в противном случае на выходе всегда будет единица). Как вы поняли, элемент «ИЛИ-НЕ» выполняет функцию «ИЛИ», а потом инвертирует его функцией «НЕ».

Графическое обозначение элемента «2ИЛИ-НЕ» и его таблица истинности приведена слева.

Самой распространённой микросхемой ТТЛ, выполняющей функцию «2ИЛИ-НЕ», является ИМС К155ЛЕ1, а микросхемами КМОП – К561ЛЕ5 и К176ЛЕ5, внутри которых имеется четыре элемента «2ИЛИ-НЕ». Нумерация выводов этих микросхем показана справа.

Предположим, что нам в схеме необходим элемент, выполняющий функцию «2ИЛИ-НЕ», но у нас есть в распоряжении только элементы «НЕ» и «2И-НЕ», тогда можно собрать следующую схему, которая будет выполнять функцию «2ИЛИ-НЕ»:

По аналогии с элементом «2И-НЕ», путём соединения входов элемента «2ИЛИ-НЕ» мы можем получить элемент «НЕ»:

«Исключающее ИЛИ» (XOR) — функция неравенства двух входов (если на обоих входах элемента одинаковые сигналы, то на выходе – ноль, в противном случае на выходе всегда будет единица). Операция, которую он выполняет, часто называют «сложение по модулю 2».

Графическое обозначение элемента «Исключающее ИЛИ» и его таблица истинности приведены слева.

Самой распространённой микросхемой ТТЛ, выполняющей функцию «Исключающее ИЛИ», является ИМС К155ЛП5, а микросхемами КМОП – К561ЛП2 и К176ЛП2, внутри которых имеется четыре элемента «Исключающее ИЛИ». Нумерация выводов этих микросхем показана справа.

Предположим, что нам в схеме необходим элемент, выполняющий функцию «Исключающее ИЛИ», но у нас есть в распоряжении только элементы «2И-НЕ», тогда можно собрать следующую схему, которая будет выполнять функцию «Исключающее ИЛИ» :

В цифровой схемотехнике процессоров главная функция — «Суммирование двоичных чисел», поэтому сложный логический элемент – «Сумматор» является неотъемлемой частью арифметико-логического устройства любого, без исключения процессора. Составной частью сумматора является набор логических элементов, выполняющих функцию «Исключающее ИЛИ с переносом остатка» . Что это такое? В соответствии с наукой «Информатика», результатом сложения двух двоичных чисел, две единицы одного разряда дают ноль, при этом формируется «единица переноса» в следующий старший разряд, который участвует в операции суммирования в старшем разряде. Для этого в схему добавляется ещё один вывод «переноса» — «Р».

Графическое обозначение элемента «Исключающее ИЛИ с переносом» и его таблица истинности представлена слева.

Такая функция сложения одноразрядных чисел в простых устройствах обычно не используется, и как правило, интегрирована в состав одной микросхемы – сумматора, с минимальным количеством разрядов – четыре, для сложения четырехбитных чисел. По причине слабого спроса, промышленность таких логических элементов не выпускает. Поэтому, в случае необходимости, функцию «Исключающее ИЛИ с переносом» можно собрать по следующей схеме из элементов «2И-НЕ» и «2ИЛИ-НЕ», которая активно применяется как внутри простых сумматоров, так и во всех сложных процессорах (в том числе Pentium, Intel-Core, AMD и других, которые появятся в будущем):

Вышеперечисленные логические элементы выполняют статические функции, а на основе них строятся более сложные статические и динамические элементы (устройства): триггеры, регистры, счётчики, шифраторы, дешифраторы, сумматоры, мультиплексоры.

Нормальные формы Дизъюнктивная x ¯ ⋅ y + x ⋅ y ¯ {\displaystyle {\overline {x}}\cdot y+x\cdot {\overline {y}}} Конъюнктивная (x ¯ + y ¯) ⋅ (x + y) {\displaystyle ({\overline {x}}+{\overline {y}})\cdot (x+y)} Полином Жегалкина x ⊕ y {\displaystyle x\oplus y} Принадлежность предполным классам Сохраняет 0 Да Сохраняет 1 Нет Монотонна Нет Линейна Да Самодвойственна Нет

Сложе́ние по мо́дулю 2 (исключа́ющее «ИЛИ» , XOR , строгая дизъюнкция , поразрядное дополнение , побитовый комплемент , инвертирование по маске , жегалкинское сложение , логическое вычитание , логи́ческая неравнозна́чность ) - булева функция , а также логическая и битовая операция . В случае двух переменных результат выполнения операции истинен тогда и только тогда, когда один из аргументов истинен, а второй - ложен. Для функции трёх и более переменных результат выполнения операции будет истинным только тогда, когда количество аргументов, равных 1, составляющих текущий набор, - нечётное. Такая операция естественным образом возникает в кольце вычетов по модулю 2 , откуда и происходит название операции.

Сложение по модулю 2 следует отличать от простого сложения, которое соответствует обыкновенному неисключающему «или» (логической дизъюнкции).

В теории множеств сложению по модулю 2 соответствует операция симметричной разности двух множеств.

В префиксной записи m a x (a , b) − m i n (a , b) {\displaystyle max(a,b)-min(a,b)} .

Обозначения [ | ]

Запись может быть префиксной («польская запись ») - знак операции ставится перед операндами, инфиксной - знак операции ставится между операндами и постфиксной - знак операции ставится после операндов. При числе операндов более 2 префиксная и постфиксная записи экономичнее инфиксной записи. Чаще всего встречаются следующие варианты записи:
⊕ 2 (a , b) , a {\displaystyle \oplus _{2}(a,b),~a} ^ b , a ⊕ b , a ⊕ 2 b , a + 2 b , {\displaystyle b,~a\oplus b,a\oplus _{2}b,a+_{2}b,} a ≠ b, a ≠ b , (a , b) ⊕ 2 , a X O R b {\displaystyle a\neq b,(a,b)\oplus _{2},a~XOR~b}

В таблице символов Юникод есть символы для сложения по модулю 2: XOR - U+22BB (⊻), CIRCLED PLUS - U+2295 (⊕) и PLUS SIGN WITH SUCSCRIPT TWO - U+2A27 (⨧), а также символ для суммы по модулю 2: MODULO TWO SUM - U+2A0A (⨊).

Свойства [ | ]

Булева алгебра [ | ]

В булевой алгебре сложение по модулю 2 - это функция двух, трёх и более переменных (они же - операнды операции, они же - аргументы функции). Переменные могут принимать значения из множества . Результат также принадлежит множеству { 0 , 1 } {\displaystyle \{0,1\}} . Вычисление результата производится по простому правилу, либо по таблице истинности . Вместо значений 0 , 1 {\displaystyle 0,1} может использоваться любая другая пара подходящих символов, например f a l s e , t r u e {\displaystyle false,true} или F , T {\displaystyle F,T} или «ложь», «истина», но при этом необходимо доопределять старшинство, например, t r u e > f a l s e {\displaystyle true>false} .

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

a {\displaystyle a} b {\displaystyle b} a ⊕ b {\displaystyle a\oplus b}
0 0 0
1 0 1
0 1 1
1 1 0

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

a {\displaystyle a} b {\displaystyle b} c {\displaystyle c} a ⊕ b ⊕ c {\displaystyle a\oplus b\oplus c}
0 0 0 0
1 0 0 1
0 1 0 1
1 1 0 0
0 0 1 1
1 0 1 0
0 1 1 0
1 1 1 1

Правило: результат равен , если нет операндов, равных 1 {\displaystyle 1} , либо их чётное количество.

Программирование [ | ]

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

Если

A = 01100101 2 {\displaystyle a=01100101_{2}}

B = 00101001 2 {\displaystyle b=00101001_{2}} , начиная со стандарта C99 , оператор « ^ » над операндами логического типа возвращает результат применения логической операции XOR. В С++ оператор « ^ » для логического типа bool возвращает результат согласно описанным правилам, для остальных же типов производится его побитовое применение.

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

В естественном языке операция «сложение по модулю» эквивалентна двум выражениям:

  1. «результат истинен (равен 1), если A не равно B (A≠B)»;
  2. «если A не равно B (A≠B), то истина (1)».

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

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

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

Квантовые вычисления [ | , могут быть поставлены под сомнение и удалены. Вы можете улучшить статью, внеся более точные указания на источники.