[X]
[X] (усечение) — традиционное слово Каллисто. Усечение числа.
[X] ( x −− x1 ) Усечение (целая часть) числа. x1 := Trunc [x]
x1 — усечение x (англ. truncation). Значащие цифры, стоящие после десятичной запятой, отбрасываются. Знак числа не меняется.
Ввод слова [X]
В режиме NUM последовательно нажмите клавиши БП Р-ГРД-Г 0 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», выпущенного в 1984 году.
Реализация
В Каллисто 1.0 слово [X] является «обёрткой» вокруг команды ЭКВМ К[x]:
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.
Математическая операция взятия целой части даёт пол числа (англ. floor), то есть производит округление числа к отрицательной бесконечности. Её наиболее точное обозначение $\lfloor x \rfloor$. Для отрицательных чисел действие слова [X] отличается от $\lfloor x \rfloor$, т.к. [X] округляет число x к нулю.
Реализация из SP-Forth 4.20:
CODE FINT FRNDINT RET END-CODE
Ссылки
- Исходный текст слова [X] в Каллисто Классик 1.0
- См. слово {X}
- Целая часть на Википедии — определение не совпадает со словом [X] для отрицательных чисел
- Truncation на английской Википедии (англ.)
- Слово FTRUNC (f-trunc) в черновике Forth 200x (англ.)
- Слова FLOOR и FROUND (f-round) в стандарте ANS Forth (англ.)
- Слова FLOOR и FROUND (f-round) в черновике Forth 200x (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |