Редактирование: 2/
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
[[Файл:CallistoTwo.png|thumb|right|264px|Пример работы слова 2/]] | [[Файл:CallistoTwo.png|thumb|right|264px|Пример работы слова 2/]] | ||
Делит | '''2/''' (на два делить нацело, читается «два дробь») — стандартное слово [[Каллисто]]. Целочисленное деление на 2 (двоичный сдвиг вправо). | ||
2/ ( i -- i1 ) | |||
Делит i на 2. Отбрасывает остаток (цифры после запятой), а частное i1 заносит в [[Стек данных|стек]]. | |||
== Ввод слова 2/ == | == Ввод слова 2/ == | ||
В [[Режим NUM|режиме NUM]] последовательно нажмите три клавиши [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ÷|{{Серая клавиша|÷}}]] | В [[Режим NUM|режиме NUM]] последовательно нажмите три клавиши [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ÷|{{Серая клавиша|÷}}]] | ||
== Детали реализации == | |||
Слово 2/ осуществляет арифметический сдвиг вправо на один двоичный разряд — сохраняя знак всех целых чисел, кроме 1. Слово [[2×]] осуществляет обратное действие, двоичный сдвиг влево. | |||
[[Каллисто]] реализована поверх десятичной машины [[«Электроника МК-161»]], поэтому поведение этих двух команд может не всегда соответствовать тому, как они реализованы на двоичных форт-машинах. | |||
== 2/ в стандарте ANS Forth == | == 2/ в стандарте ANS Forth == | ||
6.1.0330 2/ "two-slash" CORE | 6.1.0330 2/ "two-slash" CORE | ||
( x1 -- x2 ) | ( x1 -- x2 ) | ||
Строка 18: | Строка 22: | ||
как 2∗. Оно часто реализовано на машинах с дополнительным кодом (дополнение до | как 2∗. Оно часто реализовано на машинах с дополнительным кодом (дополнение до | ||
двух) аппаратным сдвигом вправо, который распространяет знаковый разряд. | двух) аппаратным сдвигом вправо, который распространяет знаковый разряд. | ||
== 2/ в предыдущем стандарте Forth-83 (англ.) == | |||
2/ n1 -- n2 83 "two-divide" | 2/ n1 -- n2 83 "two-divide" | ||
n2 is the result of arithmetically shifting n1 right one | n2 is the result of arithmetically shifting n1 right one | ||
Строка 27: | Строка 29: | ||
unchanged. | unchanged. | ||
== 2/ в стандарте Forth-79 (англ.) == | |||
2/ n1 -- n2 "two-divide" | 2/ n1 -- n2 "two-divide" | ||
Leave (n1)/2. | Leave (n1)/2. | ||
== Ссылки == | == Ссылки == | ||
* См. слова [[2×]] [[2+]] [[2−]] [[BODY〉|BODY>]] | |||
* См. слова | |||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0330 2/ (two-slash)] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.0330 комментарии к нему] в стандарте ANS Forth ''(англ.)'' | * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0330 2/ (two-slash)] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.0330 комментарии к нему] в стандарте ANS Forth ''(англ.)'' | ||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2162 RSHIFT] в стандарте ANS Forth ''(англ.)'' | * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2162 RSHIFT] в стандарте ANS Forth ''(англ.)'' | ||
* Слова [http:// | * Слова [http://www.forth200x.org/documents/html3/core/TwoDiv.html 2/ (two-slash)] и [http://www.forth200x.org/documents/html3/core/RSHIFT.html RSHIFT] в черновике Forth 200x ''(англ.)'' | ||
* [https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D1%81%D0%B4%D0%B2%D0%B8%D0%B3 Битовый сдвиг в Википедии] | * [https://ru.wikipedia.org/wiki/%D0%91%D0%B8%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D1%81%D0%B4%D0%B2%D0%B8%D0%B3 Битовый сдвиг в Википедии] | ||
* [https://en.wikipedia.org/wiki/Logical_shift Logical shift] и [https://en.wikipedia.org/wiki/Arithmetic_shift Arithmetic shift] в английской Википедии ''(англ.)'' | * [https://en.wikipedia.org/wiki/Logical_shift Logical shift] и [https://en.wikipedia.org/wiki/Arithmetic_shift Arithmetic shift] в английской Википедии ''(англ.)'' | ||
{{нет иллюстраций}} | |||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
Строка 94: | Строка 49: | ||
[[Категория:Одноместные операции Каллисто]] | [[Категория:Одноместные операции Каллисто]] | ||
[[Категория:Операции целочисленного деления Каллисто]] | [[Категория:Операции целочисленного деления Каллисто]] | ||
[[Категория: | [[Категория:Описание бета-версии Каллисто]] | ||