Слово .: различия между версиями
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) Нет описания правки |
||
(не показано 46 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
'''.''' — стандартное слово [[Каллисто]]. | '''.''' (точка) — адаптированное слово [[Каллисто]]. Вывод [[Десятичное число|десятичного числа]], за которым следует один [[пробел]]. | ||
. ( x −− ) Вывод x на индикатор и дать пробел. Совпадает с I. если BASE<>10. | |||
[[Файл:TwoPiMulDot.png|thumb|right|264px|Пример работы слова .]] | |||
Слово . очень напоминает одноимённое стандартное — бывшее ещё в Форте−79 и получившее в Каллисто имя [[I.]]. Отличие в том, что каллистянское слово . работает с плавучкой и создано на основе функций МК−161. | |||
Если [[BASE|текущая система счисления]] отлична от [[Десятичная система счисления|десятичной]] — тоже самое, что [[I.]] | |||
== Ввод слова . == | |||
В [[Режим NUM|режиме NUM]] нажмите [[Клавиша /-/|белую клавишу {{Серая клавиша|/−/}}]] | |||
== F. FE. и FS. в стандарте ANS Forth == | |||
<pre> | |||
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.. | |||
</pre> | |||
<pre> | |||
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. | |||
</pre> | |||
<pre> | |||
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. | |||
</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> | |||
== Ссылки == | == Ссылки == | ||
* [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.2.1427 | * {{Исходник|d|.}} | ||
* [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.2.1513 | * См. слова [[I.]], [[(.)]] и [[I.R]] | ||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.2.1427 F. (f-dot)] и [http://forth.sourceforge.net/standard/dpans/dpansa12.htm#A.12.6.1.1427 комментарий к нему] в стандарте ANS Forth ''(англ.)'' | |||
* Слова [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.2.1513 FE. (f-e-dot)] и [http://forth.sourceforge.net/standard/dpans/dpans12.htm#12.6.2.1613 FS. (f-s-dot)] в стандарте ANS Forth ''(англ.)'' | |||
* Слово [http://forth-standard.org/standard/float/Fd F. (f-dot)] и [http://forth-standard.org/standard/rationale#rat:float:Fd комментарий к нему] в черновике Forth 200x ''(англ.)'' | |||
* Слова [http://forth-standard.org/standard/float/FEd FE. (f-e-dot)] и [http://forth-standard.org/standard/float/FSd FS. (f-s-dot)] в черновике Forth 200x ''(англ.)'' | |||
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\01.OSNOWY%20FORTA ОСНОВЫ ФОРТА] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»] | |||
* [http://www.forth.com/starting-forth/sf1/sf1.html Fundamental Forth] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)'' | |||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Слова высокого уровня]] | |||
[[Категория:Терминальный ввод/вывод Каллисто]] | [[Категория:Терминальный ввод/вывод Каллисто]] | ||
[[Категория:Адаптированные слова]] | |||
[[Категория:Стандартные слова]] | |||
[[Категория: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 (англ.)
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |