Сложение по модулю 2, что это такое?
Так как же всё-таки сложить два числа по модулю 2? Спасибо, ко откликнется. Garry Galler не беспокоиться.
Что такое монитор и что такое мьютекс? Это же разные вещи?
Здравствуйте. В разных айти-статьях по-разному используют эти термины, причём часто их путают друг.
Как такое может быть и что это такое?
в маленьком превью одна картинка, открываешь совершенно другая (какая и должна быть) с чем это.
Что это такое и как это можно сделать?
Это что то из стандартных компонентов или как в своем проекте сделать что то подобное? .
Что это такое и как это создается?
Здравствуйте! Как создать эти жирные ссылки, показанные на картинке?
Сложение по модулю 2 это остаток от деления на 2 получившейся суммы. Но обычно, когда складывают по модулю 2 двоичные вектора, то подразумевается поразрядное (побитовое) сложение по модулю 2, то есть отдельные разряды складываются независимо от других. В этом случае получится 1111. Какое именно сложение имеется в виду для чисел в двоичной записи, поразрядное или арифметическое, как правило, понятно из контекста.
В криптографии поразрядное сложение по модулю 2 используется гораздо чаще арифметического.
Добавлено через 2 минуты
Кстати, для поразрядного сложения операнды правильнее записывать с одинаковой длиной, то есть
ну и плюсик в кружок помещают, как в этой формуле. Но это не обязательно.
Сложение по модулю 2
Сложе́ние по модулю 2 («сумма по модулю 2», «не равно», исключа́ющее «ИЛИ» (ИЛИ с исключением из правила четвёртой комбинации «1,1»), XOR,) — логическая операция (функция), по своему применению максимально приближённая к грамматической конструкции «либо … либо …» или «если операнды не равны, то истинно (1)».
Сложение по модулю 2 может быть: бинарной операцией (функцией), то есть иметь два операнда (аргумента), тринарной (триарной) операцией (функцией), то есть иметь три операнда (аргумента) или n-арной операцией (функцией), т.е. иметь n операндов (аргументов).
Запись может быть префиксной («польская запись») — знак операции ставится перед операндами, инфиксной — знак операции ставится между операндами и постфиксной — знак операции ставится после операндов. При числе операндов более 2-х префиксная и постфиксная записи экономичнее инфиксной записи. Чаще всего встречаются следующие варианты записи:
<math>\oplus_2(a,b),
a \oplus b, a \oplus_2 b, a +_2 b, </math> a ≠ b, <math>a\ne b, (a,b)\oplus_2, a
Содержание
Булева алгебра
В булевой алгебре сложение по модулю 2 — это функция двух, трёх и более переменных (они же — операнды операции, они же — аргументы функции). Переменные могут принимать значения из множества <math>
\<0, 1\></math>. Результат также принадлежит множеству <math>
\<0, 1\></math>. Вычисление результата производится по простому правилу, либо по таблице истинности. Вместо значений <math>
0, 1</math> может использоваться любая другая пара подходящих символов, например <math>
false, true</math> или <math>
F, T</math> или «ложь», «истина».
Таблицы истинности:
для бинарного сложения по модулю 2
Правило (только для бинарного сложения по модулю 2): результат равен <math>
0</math>, если оба операнда равны; во всех остальных случаях результат равен <math>
для тернарного сложения по модулю 2
X | Y | Z | ⊕(X,Y,Z) |
---|---|---|---|
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 |
Программирование
В языках C/C++ (а также Java, C#, Ruby, PHP, JavaScript и т. д.) эта операция обозначается символом «^», в языках Паскаль, Delphi, Ada — зарезервированным словом XOR, в языке ассемблера — одноимённой логической командой. Сложение по модулю 2 выполняется для всех битов левого и правого операнда попарно. Например,
Выполнение операции XOR для значений логического типа (true, false) производится в разных языках программирования по-разному. Например в Delphi используется встроенный оператор XOR (пример: condition1 xor condition2). В языке C, начиная со стандарта C99, оператор «^» над операндами логического типа возвращает результат применения операции XOR. В С++ оператор «^» для логического типа bool возвращает результат согласно описанным правилам, для остальных же типов производится его побитовое применение. Перегрузка для стандартных типов невозможна, но операцию XOR над ними можно реализовать, исходя из принципа «исключающего ИЛИ». Выглядит это так:
(при этом нет разницы, применяются ли побитовые операторы & и |, или же логические && и ||)
Связь с естественным языком
В естественном языке операция «сложение по модулю 2» эквивалентна двум выражениям:
1. «результат истинен (равен 1), если A не равно B (A≠B)»;
2. «если A не равно B (A≠B), то истина (1)».
Часто указывают на сходство между сложением по модулю 2 и конструкцией «либо … либо …» в естественном языке. Составное утверждение «либо A, либо B» считается истинным, когда истинно либо A, либо B, но не оба сразу; в противном случае составное утверждение ложно. Это в точности соответствует определению операции в булевой алгебре, если «истину» обозначать как <math>1</math>, а «ложь» как <math>0</math>.
Эту операцию нередко сравнивают с дизъюнкцией потому, что они очень похожи по свойствам, и обе имеют сходство с союзом «или» в повседневной речи. Сравните правила для этих операций:
- <math>A \lor B</math> истинно, если истинно <math>
Операция <math>\oplus</math> исключает последний вариант («оба сразу») и по этой причине называется исключающим «ИЛИ». Операция <math>\lor</math> включает последний вариант («оба сразу») и по этой причине иногда называется включающим «ИЛИ». Неоднозначность естественного языка заключается в том, что союз «или» может применяться в обоих случаях.
Сложение по модулю два (нечетность)
Ниже показаны его обозначение на электрических схемах (рисунок 4.9) и таблица истинности (таблица 4.7).
Элемент суммирует значения переменных по модулю два (символ (псевдоплюс) означает mod2: 0 + 0 = 0; 1 + 1 = 0; 1 + 0 = 1; 0 + 1 = 1).
Если при суммировании число единиц нечетно, то функция равна 1, в противном случае — F=0.
Сложение по модулю два с отрицанием (четность)
Элемент реализует логическую функцию
Ниже показаны его обозначение на электрических схемах (рисунок 4.10) и таблица истинности (таблица 4.8).
Элемент формирует сумму по модулю два, которая затем инвертируется на выходе. Если при суммировании число единиц четно, то функция равна 1, в противном случае — F = 0.
Сложение по модулю 2
Сложе́ние по мо́дулю 2 (логи́ческое сложе́ние, исключа́ющее «ИЛИ», строгая дизъюнкция, XOR, поразрядное дополнение, побитовый комплемент) — булева функция, а также логическая и битовая операция. В случае 2 переменных результат выполнения операции является истинным тогда и только тогда, когда лишь один из аргументов является истинным. Для функции трёх и более переменных результат выполнения операции будет истинным только тогда, когда количество аргументов равных 1, составляющих текущий набор — нечетное. Такая операция естественным образом возникает в кольце вычетов по модулю 2, откуда и происходит название операции.
Сложение по модулю 2 следует отличать от простого сложения, которое соответствует обыкновенному неисключающему «или» (логической дизъюнкции).
В теории множеств сложению по модулю 2 соответствует операция симметричной разности двух множеств.
Содержание
Обозначения
Запись может быть префиксной («польская запись») — знак операции ставится перед операндами, инфиксной — знак операции ставится между операндами и постфиксной — знак операции ставится после операндов. При числе операндов более 2-х префиксная и постфиксная записи экономичнее инфиксной записи. Чаще всего встречаются следующие варианты записи:
a \oplus b, a \oplus_2 b, a +_2 b, » width=»» height=»» /> a ≠ b,
a ≡ b (операция равнозначности или сравнения по модулю)
Булева алгебра
В булевой алгебре сложение по модулю 2 — это функция двух, трёх и более переменных (они же — операнды операции, они же — аргументы функции). Переменные могут принимать значения из множества
\<0, 1\>» width=»» height=»» />. Вычисление результата производится по простому правилу, либо по таблице истинности. Вместо значений
false, true» width=»» height=»» /> или
true > false» width=»» height=»» />.
- для бинарного сложения по модулю 2 (применяется в двоичных полусумматорах):
0″ width=»» height=»» />, если оба операнда равны; во всех остальных случаях результат равен , а «ложь» как
.
Эту операцию нередко сравнивают с дизъюнкцией потому, что они очень похожи по свойствам, и обе имеют сходство с союзом «или» в повседневной речи. Сравните правила для этих операций:


A» width=»» height=»» /> или исключает последний вариант («оба сразу») и по этой причине называется исключающим «ИЛИ». Операция
включает последний вариант («оба сразу») и по этой причине иногда называется включающим «ИЛИ». Неоднозначность естественного языка заключается в том, что союз «или» может применяться в обоих случаях.
Квантовые вычисления
В квантовых компьютерах аналогом операции сложения по модулю 2 является вентиль CNOT.