Что на самом деле означает Эксклюзив в XOR? - PullRequest
11 голосов
/ 06 марта 2011

Может быть, это очевидно для всех, но кто-то может объяснить, откуда XOR (или Exclusive-OR) получил свое название? Что на самом деле означает слово Эксклюзив ? Не то чтобы это было важно, но это просто застряло в моей голове с утра.

OR:
0 0 0
0 1 1
1 0 1
1 1 1

XOR:
0 0 0
0 1 1
1 0 1
1 1 0

Это "исключительно 0 для входов 1,1", "специальная версия ИЛИ" или что-то еще?

Ответы [ 8 ]

17 голосов
/ 07 марта 2011

Это то, что дети понимают как ИЛИ

Вы можете иметь шоколад ИЛИ Вы можете есть мороженое

Но программист будет расценивать это как наличие обоих!

В: "Хотели бы вы чай или кофе"
Раздражающий ответ программиста = да

16 голосов
/ 06 марта 2011

XOR - это «исключающее ИЛИ», потому что оно возвращает «истинное» значение 1, только если два значения являются исключительными, т. Е. Оба они разные.

10 голосов
/ 06 марта 2011

Согласно Кнуту в т.4A TAOCP, Джордж Буль "... написал x + y, чтобы обозначить дизъюнкцию, но он старался никогда не использовать эту запись, если x и y не были взаимоисключающими (не оба 1). При необходимости он писал x + (1-x) y, чтобы гарантировать, что результатом дизъюнкции никогда не будет 2. "

XOR - это дополнение к потерянным носителям.

8 голосов
/ 06 марта 2011

Исключительно в том смысле, что два операнда должны быть взаимоисключающими (другими словами, разными).

5 голосов
/ 06 марта 2011

Это происходит из теории множеств.Учтите, что у вас есть два набора A и B, и элемент, который может или не может быть в этих наборах.Первый логический вход имеет значение true, если элемент находится в наборе A. Второй логический вход имеет значение true, если элемент находится в наборе B.

Если элемент «эксклюзивен» для одного набора (как в «не разделяется»"с другим), то оператор XOR вернет истину.Иллюстрация из Википедии :

exclusive or

4 голосов
/ 06 марта 2011

Исключительно в XOR означает именно то, что написано - одно из двух должно быть исключено. То есть либо один, либо другой. Ни то, ни другое - только одно. По крайней мере, так я это понял:)

3 голосов
/ 06 марта 2011

Это эксклюзивно, как в «только один». Другими словами, это «один из двух, но не оба».

1 голос
/ 07 марта 2011

Сегодня я прочитал хороший «простой английский» пример:

Рассмотрим, например, английское предложение: «Вы заплатите мне до вторника, или я подам в суд».Если это «или» было логическим связующим звеном, то предложение верно, если вы либо заплатите мне до вторника, либо я подам на вас в суд;так что вы можете заплатить мне в понедельник, а я все еще могу подать на вас в суд.Но это конкретное использование «или» обычно означает, что вы либо платите мне до вторника, а я не предъявляю вам иск, либо вы не платите мне до вторника, а я предъявляю вам иск - так называемый «эксклюзивный или".

Хью Дарвен," Введение в теорию реляционных баз данных ", стр. 76.

...