Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''[X]''' (усечение) — традиционное слово [[Каллисто]]. Усечение числа. | | '''[X]''' — стандартное слово [[Каллисто]]. |
| [X] ( x −− x1 ) Усечение (целая часть) числа. x1 := Trunc [x]
| |
| x1 — усечение x (''англ.'' truncation). Значащие цифры, стоящие после десятичной запятой, отбрасываются. Знак числа не меняется.
| |
| | |
| == Ввод слова [X] ==
| |
| В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши [[Клавиша БП|{{Чёрная клавиша|БП}}]] [[Клавиша Р-ГРД-Г|{{Чёрная клавиша|Р-ГРД-Г}}]] [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша P|{{Синяя клавиша|P}}]] [[Клавиша ПП|{{Чёрная клавиша|ПП}}]]
| |
| | |
| == FLOOR в стандарте ANS Forth ==
| |
| 12.6.1.1558 FLOOR FLOATING
| |
| ( F: r1 -- r2 ) or ( r1 -- r2 )
| |
| Округление r1 к целому значению, использующему правило "округления
| |
| к отрицательной бесконечности", возвращает r2.
| |
| | |
| == FROUND в стандарте ANS Forth ==
| |
| 12.6.1.1612 FROUND "f-round" FLOATING
| |
| ( F: r1 -- r2 ) or ( r1 -- r2 )
| |
| Округляет r1 к целому значению, использующему правило "округления к
| |
| ближайшему", возвращает r2.
| |
| | |
| См.: 12.3.2 Операции c плавающей точкой.
| |
| | |
| == История ==
| |
| Слово [X] повторяет особенности округления, характерные для советских калькуляторов [[«Электроника МК-61»]] и [[«Электроника МК-52»]].
| |
| | |
| В Форте FSP88 слово [X] известно под именем INT
| |
| | |
| В черновике стандарта Форт-2012 слово [X] называется FTRUNC
| |
| | |
| В [[Каллисто]] имя [X] восходит к надписи на клавиатуре советского ПМК [[Электроника МК-61|«Электроника МК-61»]], выпущенного в 1984 году.
| |
| | |
| == Реализация ==
| |
| В [[Каллисто|Каллисто 1.0]] слово [X] является «обёрткой» вокруг команды ЭКВМ [[K INT|К[x]]]:
| |
| <pre>
| |
| 1645 ;#FTRUNC
| |
| 1646 ; [X] ( x −− x1 ) Усечение (целая часть) числа. x1 := Trunc [x]
| |
| 1647 LINT: .DB 3 ; ( x −− [x] )
| |
| 1648 .TEXT "[X]"
| |
| 1649 .DW LSGN
| |
| 1650 INT: .DW JINT
| |
| 1651 JINT: PKRM03 KINT PKM03 KGOTO9 ; Обёртка вокруг KINT.
| |
| </pre>
| |
| Математическая операция взятия целой части даёт пол числа (''англ.'' floor), то есть производит округление числа к отрицательной бесконечности. Её наиболее точное обозначение $\lfloor x \rfloor$. Для отрицательных чисел действие слова [X] отличается от $\lfloor x \rfloor$, т.к. [X] округляет число x к нулю.
| |
| | |
| Реализация из SP-Forth 4.20:
| |
| <pre>
| |
| CODE FINT
| |
| FRNDINT
| |
| RET
| |
| END-CODE
| |
| </pre>
| |
|
| |
|
| == Ссылки == | | == Ссылки == |
| * {{Исходник|FTRUNC|[X]}} | | * [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1558 Слово FLOOR в стандарте ANS Forth] ''(англ.)'' |
| * См. слово [[⎨X⎬|{X}]]
| | * [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1612 Слово FROUND (f-round) в стандарте ANS Forth] ''(англ.)'' |
| * [http://ru.wikipedia.org/wiki/%D0%A6%D0%B5%D0%BB%D0%B0%D1%8F_%D1%87%D0%B0%D1%81%D1%82%D1%8C Целая часть на Википедии] — определение не совпадает со словом [X] для отрицательных чисел
| | * [http://www.forth200x.org/documents/html/float.html#floating:FLOOR Слово FLOOR в черновике Forth 200x] ''(англ.)'' |
| * [https://en.wikipedia.org/wiki/Truncation Truncation на английской Википедии] ''(англ.)''
| | * [http://www.forth200x.org/documents/html/float.html#floating:FROUND Слово FROUND (f-round) в черновике Forth 200x] ''(англ.)'' |
| * Слово [http://forth-standard.org/standard/float/FTRUNC FTRUNC (f-trunc)] в черновике Forth 200x ''(англ.)''
| |
| * Слова [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1558 FLOOR] и [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.1.1612 FROUND (f-round)] в стандарте ANS Forth ''(англ.)''
| |
| * Слова [http://forth-standard.org/standard/float/FLOOR FLOOR] и [http://forth-standard.org/standard/float/FROUND FROUND (f-round)] в черновике Forth 200x ''(англ.)'' | |
|
| |
|
|
| |
|
Строка 63: |
Строка 11: |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Примитивы]]
| |
| [[Категория:Математические функции Каллисто]] | | [[Категория:Математические функции Каллисто]] |
| [[Категория:Одноместные операции Каллисто]] | | [[Категория:Одноместные операции Каллисто]] |
| [[Категория:Традиционные слова]]
| |
| [[Категория:Адаптированные слова]]
| |