Редактирование: XOR
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 9: | Строка 9: | ||
== Ввод слова XOR == | == Ввод слова XOR == | ||
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите три белые клавиши [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша 5|{{Серая клавиша|5}}]] [[Клавиша ×|{{Серая клавиша|×}}]] | В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите три белые клавиши [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша 5|{{Серая клавиша|5}}]] [[Клавиша ×|{{Серая клавиша|×}}]] | ||
== Детали реализации == | |||
В [[Каллисто]] для записи 32-битных целых чисел в [[Стек данных|десятичном стеке]] используется [[дополнительный код]] (''англ.'' two's complement). На входе слово XOR принимает как 32-битные целые в [[Дополнительный код|дополнительном коде]], так и беззнаковые целые. Результат i всегда представлен в [[Дополнительный код|дополнительном коде]] и отрицателен, если старший бит в нём установлен. | |||
XOR даёт правильный результат побитового исключающего «или» над числами любой разрядности, меньшей 32, включая 24-, 16- и 8-битные числа. Если оба аргумента разрядности меньше, чем 32, представлены в [[Дополнительный код|дополнительном коде]], результат i также выдаётся в [[Дополнительный код|дополнительном коде]]. Если оба аргумента представлены в беззнаковом виде, результат также будет в беззнаковом виде — положительным числом или нулём. | |||
Последовательности слов {{Текст на индикаторе|65535, XOR}} и {{Текст на индикаторе|255 XOR}} позволяют сделать поразрядное логическое отрицание (NOT) 16-битного и 8-битного числа, находящегося на вершине [[Стек данных|стека]]. | |||
Также слово XOR можно использовать для логической операции исключающего "или" над флагами, если значение «истина» представляется числом -1. Все стандартные слова [[Каллисто]], возвращающие логическое значение (например, команды сравнения), используют это значение для возвращаемого флага «истина». | |||
Слово XOR реализовано с использованием команды ЭКВМ [[K XOR]]. | |||
== XOR в стандарте ANS Forth == | == XOR в стандарте ANS Forth == | ||
Строка 16: | Строка 27: | ||
== История == | == История == | ||
=== XOR в предыдущем стандарте Forth-83 (англ.) === | === XOR в предыдущем стандарте Forth-83 (англ.) === | ||
XOR 16b1 16b2 -- 16b3 79 "x-or" | XOR 16b1 16b2 -- 16b3 79 "x-or" | ||
Строка 31: | Строка 40: | ||
== Реализация == | == Реализация == | ||
Слово XOR в ФОРТ-ЕС было [[примитив]]ом. Вот его определение: | Слово XOR в ФОРТ-ЕС было [[примитив]]ом. Вот его определение: | ||
<PRE> | <PRE> | ||
Строка 113: | Строка 69: | ||
== Ссылки == | == Ссылки == | ||
* {{Исходник|XOR|XOR}} | * {{Исходник|XOR|XOR}} | ||
* См. слова [[AND]], [[OR]] и [[NOT]] | * См. слова [[Слово AND|AND]], [[Слово OR|OR]] и [[Слово NOT|NOT]] | ||
* [http://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E_2 Сложение по модулю 2], [https://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0_%D0%B2%D1%8B%D1%81%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B9 Логика высказываний] и [https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8 Битовые операции] в Википедии | * [http://ru.wikipedia.org/wiki/%D0%A1%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D0%BE_%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8E_2 Сложение по модулю 2], [https://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0_%D0%B2%D1%8B%D1%81%D0%BA%D0%B0%D0%B7%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B9 Логика высказываний] и [https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D1%82%D0%BE%D0%B2%D1%8B%D0%B5_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%B8 Битовые операции] в Википедии | ||
* [http://www.catb.org/~esr/jargon/html/X/xor.html XOR на The Jargon File] ''(англ.)'' | * [http://www.catb.org/~esr/jargon/html/X/xor.html XOR на The Jargon File] ''(англ.)'' | ||
Строка 129: | Строка 85: | ||
[[Категория:Стандартные слова]] | [[Категория:Стандартные слова]] | ||
[[Категория:1994 CORE]] | [[Категория:1994 CORE]] | ||