Деление двух двойных целых чисел в Forth

Я использую Gforth, и я искал стандартное слово Forth для деления двух двойных целых чисел или, по крайней мере, смешанное деление двойного целого числа на одно целое, но в результате поддерживающее двойные целые числа. Кажется, нет ни одного. SM/REM, FM/MOD и UM/MOD имеют все ограничения.

Я что-то пропустил? Почему такое слово уже не встроено в Форт? Операция четко определена, и арифметические переполнения невозможны. Нужно ли программировать самому?


person viuser    schedule 21.02.2017    source источник
comment
Небольшая подсказка: вы можете использовать DU/MOD слово в хорошо известном библиотека bigmath от SwitfForth.   -  person ruvim    schedule 21.02.2017


Ответы (1)


M*/ (d n u -- result) может быть словом, которое вы ищете. Из Starting Forth (исходная печатная версия):

Умножает 32-битное число на 16-битное число и делит результат тройной длины на 16-битное число (d*n/u). Возвращает 32-битный результат. Все значения подписаны.

Таким образом, чтобы разделить двойное число на одиночное, вы можете заменить n на 1. Включено в DPANS94, "Необязательный набор слов с двойным числом".

person dch    schedule 04.11.2018