XOR: различия между версиями
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) (→Ссылки) |
||
Строка 45: | Строка 45: | ||
* Слово [http://www.forth200x.org/documents/html3/core/XOR.html XOR (x-or)] в черновике Forth 200x ''(англ.)'' | * Слово [http://www.forth200x.org/documents/html3/core/XOR.html XOR (x-or)] в черновике Forth 200x ''(англ.)'' | ||
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\04.%20KOMPJUTER%20%22PRINIMAET%20RESENIA%22 КОМПЬЮТЕР "ПРИНИМАЕТ РЕШЕНИЯ"] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»] | * [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\04.%20KOMPJUTER%20%22PRINIMAET%20RESENIA%22 КОМПЬЮТЕР "ПРИНИМАЕТ РЕШЕНИЯ"] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»] | ||
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\07.TISLO%20TIPOW%20TISEL ЧИСЛО ТИПОВ ЧИСЕЛ] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»] | |||
Версия от 02:36, 25 марта 2016
XOR (исключающее или, читается «ксор») — стандартное слово Каллисто. 32-битное поразрядное сложение по модулю два.
XOR ( n1 n2 -- i ) Исключающее «или».
Выполняет 32-битное логическое исключающее «или» для целых чисел n1 и n2, результат в дополнительном коде i заносится в стек.
Другими словами, каждый из 32 битов числа n1 сравнивается с соответствующим битом числа n2 и, если один из них (но не оба) равен единице, в соответствующий бит числа i заносится единица. В противном случае, когда оба рассматриваемых бита совпадают, соответствующий бит результата i будет равен нулю.
Ввод слова XOR
В режиме ЛАТ последовательно нажмите три белые клавиши 0 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
6.1.2490 XOR "x-or" CORE ( x1 x2 -- x3 ) x3 поразрядное исключающее-или x1 и x2.
XOR в предыдущем стандарте Forth-83 (англ.)
XOR 16b1 16b2 -- 16b3 79 "x-or" 16b3 is the bit-by-bit exclusive-or of 16b1 with 16b2.
XOR в стандарте Forth-79 (англ.)
XOR n1 n2 -- n3 174 "x-or" Leave the bitwise exclusive-or of two numbers.
XOR в fig-FORTH Release 1 glossary, май 1979 (англ.)
XOR nl n2 --- xor L1 Leave the bitwise logical exclusive or of two values.
Ссылки
- См. слова AND OR NOT
- Сложение по модулю 2, Логика высказываний и Битовые операции в Википедии
- XOR на The Jargon File (англ.)
- Слово XOR (x-or) в стандарте ANS Forth (англ.)
- Слово XOR (x-or) в черновике Forth 200x (англ.)
- КОМПЬЮТЕР "ПРИНИМАЕТ РЕШЕНИЯ" в книге Л.Броуди «Начальный курс программирования на языке Форт»
- ЧИСЛО ТИПОВ ЧИСЕЛ в книге Л.Броуди «Начальный курс программирования на языке Форт»
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |