Учебное пособие по языку ФОРТ
- Автор: ИТФ «Технофорт»
- Жанр: Современные российские издания / Литература ХX века (эпоха Социальных революций) / Программирование: прочее / Forth
- Дата выхода: 1993
Читать книгу "Учебное пособие по языку ФОРТ" полностью
13. Арифметика двойной точности
Наряду с обычным представлением целых чисел, в котором на каждое число отводится по два байта, Форт допускает представление чисел с двойной точностью — число размещается в четырех байтах и, следовательно, может принимать значения от -2**31 до 2**31-1. Чтобы отличать числа двойной точности от обычных чисел, надо в запись таких чисел (в любом месте) включить точку.
Например: 12345678.
При размещении таких чисел в стеке и, аналогично, в памяти в четырех идущих подряд байтах старшая половина располагается правее младшей. Слов, работающих с числами двойной точности, в языке не очень много; разумеется, к ним относятся и уже известные Вам слова "2DROP", "2DUP", "2OVER", "2SWAP".
Слово "D." выводит число двойной длины со знаком:
D. ... d --> ...
Слово "2@" аналогично слову "@", оно кладет на стек число двойной длины, находящееся по данному адресу:
2@ ... addr --> ... d
Слово "2!" аналогично слову "!":
2! ... d addr --> ...
Из арифметических операций можно назвать:
D+ ... d1 d2 --> ... d1+d2
D- ... d1 d2 --> ... d1-d2
DABS ... d --> ... |d|
DNEGATE ... d --> ... -d
D< ... d1 d2 --> ... d1 ... d1=d2
Операции умножения и деления являются "смешанными", то есть умножение двум числам обычной длины сопоставляет их произведение двойной длины; в делении делимое имеет двойную длину, а делитель, частное и остаток — обычную.
M* ... n1 n2 --> ... d=n1*n2
M/MOD ... d n --> ... n1 n2 ( остаток частное )
Для перевода числа в двойное используется слово "S>D"
: S>D ( n --> d )
DUP 0< ;
Обратный перевод требует тщательной проверки его корректности, но в простейшем случае эквивалентен "DROP".
Наконец, имеются слова "2CONSTANT" и "2VARIABLE", вполне аналогичные своим прообразам для чисел обычной длины.