Слово .: различия между версиями
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 8: | Строка 8: | ||
== Ввод слова . == | == Ввод слова . == | ||
В [[Режим NUM|режиме NUM]] нажмите [[Клавиша /-/|белую клавишу {{Серая клавиша|/−/}}]] | В [[Режим NUM|режиме NUM]] нажмите [[Клавиша /-/|белую клавишу {{Серая клавиша|/−/}}]] | ||
== F. FE. и FS. в стандарте ANS Forth == | == F. FE. и FS. в стандарте ANS Forth == | ||
Строка 63: | Строка 58: | ||
См.: 6.1.0750 BASE, 12.3.2 Операции c плавающей точкой, 12.6.1.2143 | См.: 6.1.0750 BASE, 12.3.2 Операции c плавающей точкой, 12.6.1.2143 | ||
REPRESENT. | REPRESENT. | ||
</pre> | |||
== Реализация == | |||
Когда [[BASE]] равно десяти, слово . выводит [[десятичное число]] на индикатор с помощью [[R9035|регистра 9035]], который использует [[Десятичная система счисления|десятичную систему счисления]] и ограничивает точность 8 значащими цифрами. Если вам нужно вывести целое число, рекомендую использовать традиционный для Форта вывод, который в Каллисто называется [[I.]] и не имеет подобных ограничений. | |||
Например, {{Текст на индикаторе|2 31 yˣ .}} выведет {{Текст на индикаторе|2,1474836E09}}, тогда как {{Текст на индикаторе|2 31 yˣ i.}} покажет все десять значащих цифр: {{Текст на индикаторе|2147483648}}. | |||
<pre> | |||
3831 ;#d | |||
3832 ; . ( x −− ) Вывести x на индикатор и дать пробел. Совпадает с I. если BASE≠10. | |||
3833 LFDOT: .DB 1 | |||
3834 .TEXT "." ; ( число −− ) | |||
3835 .DW LDOT | |||
3836 FDOT: .DW CALL ; Вывести десятичное число x, за которым следует один пробел. | |||
3837 RFDOT: .DW BASE,UAT, LITB | |||
3838 .DB 10 | |||
3839 .DW EQUAL,ZBRAN,RDOT ; Если система счисления не десятичная, вывести целую часть числа | |||
3840 .DW BDIGF, DIGF, EDIGF, TYPE, BRAN,RSPACE | |||
</pre> | </pre> | ||
Строка 83: | Строка 95: | ||
[[Категория:Стандартные слова]] | [[Категория:Стандартные слова]] | ||
[[Категория:1994 CORE]] | [[Категория:1994 CORE]] | ||
[[Категория:2012 CORE]] |
Текущая версия от 11:11, 10 ноября 2017
. (точка) — адаптированное слово Каллисто. Вывод десятичного числа, за которым следует один пробел.
. ( x −− ) Вывод x на индикатор и дать пробел. Совпадает с I. если BASE<>10.
Слово . очень напоминает одноимённое стандартное — бывшее ещё в Форте−79 и получившее в Каллисто имя I.. Отличие в том, что каллистянское слово . работает с плавучкой и создано на основе функций МК−161.
Если текущая система счисления отлична от десятичной — тоже самое, что I.
Ввод слова .[править]
В режиме NUM нажмите белую клавишу /−/
F. FE. и FS. в стандарте ANS Forth[править]
12.6.2.1427 F. "f-dot" FLOATING EXT ( -- ) ( F: r -- ) or ( r -- ) Отображает с конечным пробелом верхнее число со стека с плавающей точкой, используя нотацию с фиксированной точкой: [-] <цифры>.<цифры0> Неопределенная ситуация существует, если значение BASE - не (десятичное) десять или если символьное строковое представление превышает размер буфера выходной строки отображаемого числа. См.: 12. 12.6.1.0558 >FLOAT. A.12.6.1.1427 F. Например, 1E3 F. отображает 1000..
12.6.2.1513 FE. "f-e-dot" FLOATING EXT ( -- ) ( F: r -- ) or ( r -- ) Отображает с конечным пробелом верхнее число со стека с плавающей точкой используя инженерную нотацию, где мантисса больше или равна 1.0 и меньше чем 1000.0 и десятичная экспонента - множитель трех. Неопределенная ситуация существует, если значение BASE - не (десятичное) десять или если символьное строковое представление превышает размер буфера выходной строки отображаемого числа. См.: 6.1.0750 BASE, 12.3.2 Операции c плавающей точкой, 12.6.1.2143 REPRESENT.
12.6.2.1613 FS. "f-s-dot" FLOATING EXT ( -- ) ( F: r -- ) or ( r -- ) Отображает, с конечным пробелом, верхнее число со стека с плавающей точкой в экспоненциальном формате: <мантисса><экспонента> где: <мантисса> := [-]<цифра>.<цифры0> <экспонента> := E[-]<цифры> Неопределенная ситуация существует, если значение BASE - не (десятичное) десять или если символьное строковое представление превышает размер буфера выходной строки отображаемого числа. См.: 6.1.0750 BASE, 12.3.2 Операции c плавающей точкой, 12.6.1.2143 REPRESENT.
Реализация[править]
Когда BASE равно десяти, слово . выводит десятичное число на индикатор с помощью регистра 9035, который использует десятичную систему счисления и ограничивает точность 8 значащими цифрами. Если вам нужно вывести целое число, рекомендую использовать традиционный для Форта вывод, который в Каллисто называется I. и не имеет подобных ограничений.
Например, 2 31 yˣ . выведет 2,1474836E09 , тогда как 2 31 yˣ i. покажет все десять значащих цифр: 2147483648 .
3831 ;#d 3832 ; . ( x −− ) Вывести x на индикатор и дать пробел. Совпадает с I. если BASE≠10. 3833 LFDOT: .DB 1 3834 .TEXT "." ; ( число −− ) 3835 .DW LDOT 3836 FDOT: .DW CALL ; Вывести десятичное число x, за которым следует один пробел. 3837 RFDOT: .DW BASE,UAT, LITB 3838 .DB 10 3839 .DW EQUAL,ZBRAN,RDOT ; Если система счисления не десятичная, вывести целую часть числа 3840 .DW BDIGF, DIGF, EDIGF, TYPE, BRAN,RSPACE
Ссылки[править]
- Исходный текст слова . в Каллисто Классик 1.0
- См. слова I., (.) и I.R
- Слово F. (f-dot) и комментарий к нему в стандарте ANS Forth (англ.)
- Слова FE. (f-e-dot) и FS. (f-s-dot) в стандарте ANS Forth (англ.)
- Слово F. (f-dot) и комментарий к нему в черновике Forth 200x (англ.)
- Слова FE. (f-e-dot) и FS. (f-s-dot) в черновике Forth 200x (англ.)
- ОСНОВЫ ФОРТА в книге Л.Броуди «Начальный курс программирования на языке Форт»
- Fundamental Forth в книге Leo Brodie Starting Forth (англ.)
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |