NUMBER: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) |
AtH (обсуждение | вклад) |
||
Строка 34: | Строка 34: | ||
== Реализация == | == Реализация == | ||
Описание и определение слова NUMBER в ядре ФОРТ-ЕС: | |||
<PRE> | <PRE> | ||
NUMBER + T->WD ПРЕОБРАЗОВАТЬ СТРОКУ Т В ЧИСЛО WD 39 | NUMBER + T->WD ПРЕОБРАЗОВАТЬ СТРОКУ Т В ЧИСЛО WD 39 |
Версия от 10:56, 26 марта 2016
NUMBER — стандартное слово Каллисто.
Преобразует в число последовательность символов, начиная с a+1 с учётом BASE.
Ввод слова NUMBER
В режиме ЛАТ последовательно нажмите клавиши 4 3 ÷ В/О ИП ×
NUMBER в предыдущем стандарте Forth-83 (англ.)
NUMBER addr -- d Convert the count and character string at addr, to a signed 32-bit integer, using the value of BASE . If numeric conversion is not possible, an error condition exists. The string may contain a preceding minus sign.
NUMBER в стандарте Forth-79 (англ.)
NUMBER addr -- n Convert the count and character string at addr, to a signed 32-bit integer, using the current base. If numeric conversion is not possible, an error condition exists. The string may contain a preceding negative sign.
NUMBER в fig-FORTH Release 1 glossary, май 1979 (англ.)
NUMBER addr --- d Convert a character string left at addr with a preceeding count, to a signed .double number, using the current numeric base. If a decimal point is encountered in the text, its position will be given in DPL, but no other effect occurs. If numeric conversion is not possible, an error message will be given.
История
Слово NUMBER появилось в 1958 году в самой первой версии интерпретатора Форта, написанного Чак Муром на Фортране для IBM EDPM 704 для САО. Тогда оно ещё не называлось NUMBER, так в то время команды Форта кодировались числами.
NUMBER использовался словом INTERPRET для преобразования слов в двоичный вид, в данном случае чисел с плавающей запятой.
Реализация
Описание и определение слова NUMBER в ядре ФОРТ-ЕС:
NUMBER + T->WD ПРЕОБРАЗОВАТЬ СТРОКУ Т В ЧИСЛО WD 39 Экран номер 39 ( 31.03.86 DIGIT CONVERT NUMBER ) : NUMBER ( T->WD ) 0 0 ROT DUP >R COUNT OVER + OVER С@ С" - = DUP >R SWAP >R IF ELSE 1- THEN -1 BEGIN DPL ! CONVERT DUP R@ < WHILE DUP С@ С" . <> IF RDROP RDROP R> BADWORD THEN 0 REPEAT DROP RDROP R> IF DNEGATE THEN RDROP ;
Ссылки
- ОСНОВЫ ФОРТА в книге Л.Броуди «Начальный курс программирования на языке Форт»
- ЧИСЛО ТИПОВ ЧИСЕЛ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- ВВОД-ВЫВОД в книге Л.Броуди «Начальный курс программирования на языке Форт»
- Fundamental Forth в книге Leo Brodie Starting Forth (англ.)
- A Number of Kinds of Numbers в книге Leo Brodie Starting Forth (англ.)
- I/O and You в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |