Библиотека knigago >> Компьютеры: Языки и системы программирования >> Forth >> Руководство по программированию на Форте

Илья Тарасов - Руководство по программированию на Форте

Руководство по программированию на Форте
Книга - Руководство по программированию на Форте.  Илья Тарасов  - прочитать полностью в библиотеке КнигаГо
Название:
Руководство по программированию на Форте
Илья Тарасов

Жанр:

Руководства и инструкции, Самиздат, сетевая литература, Литература ХXI века (эпоха Глобализации экономики), Программирование: прочее, Forth

Изадано в серии:

неизвестно

Издательство:

Интернет-издательство «Stribog»

Год издания:

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Руководство по программированию на Форте"

Краткое введение в современный Форт.

Читаем онлайн "Руководство по программированию на Форте". [Страница - 29]

диапазону 0..1). Одновременно определяется десятичный порядок как количество шагов умножения/деления мантиссы до получения требуемого диапазона.

2) Очередная цифра определяется после умножения мантиссы на 10.

3) Целая часть от деления является очередной цифрой для печати.

4) С дробной частью повторяются шаги 2-3 до вывода требуемого количества знаков мантиссы.

5) Печатается порядок. Если число было выведено в формате с мантиссой, лежащей в диапазоне 1..10, порядок уменьшается на единицу.


Пример:


Число 12.23Е1 = 122.3

1) 122.3/1000 = 0.1223 Порядок равен 3.

2) 0.1223*10=1.223

3) Целая часть равна 1.

4) Дробная часть равна 0.223.

5) Повторяем шаг 2: 0.223*10=2.23 и т.д.


Результат вывода: 1.22300000000Е2.


В приведенном алгоритме сознательно не использовались трансцендентные операции, которые позволили бы существенно сократить время на выполнение операций нормализации/денормализации мантиссы. В частности, наличие в системе команд операции вычисления десятичного логарифма позволяет определить десятичный порядок без выполнения циклических операций умножения/деления. Однако обобщенное описание алгоритма дает возможность разработки относительно простых библиотек эмуляции вычислений с плавающей точкой на целочисленных процессорах. Такие библиотеки могут и не включать в себя трансцендентные операции, однако реализация форматных преобразований остается возможной.


Алгоритм преобразования строки в вещественное число:

1) Определяется знак и исключается из строки.

2) Если очередной символ является цифрой, то он обрабатывается как: F=F+N10-i, где F – накопленная мантисса; i - номер обрабатываемой цифры, начиная с нуля; N – десятичный эквивалент этой цифры. Знак мантиссы и десятичная точка не изменяют номер обрабатываемой цифры.

3) Если очередной символ является десятичной точкой, то запоминается количество уже обработанных цифр для выполнения коррекции по п.5.

4) Если очередной символ является символом порядка, дальнейшая строка обрабатывается как целое число, представляющая собой десятичный порядок.

5) Выполняется коррекция порядка в соответствии с позицией точки в строке. Это необходимо для правильного преобразования строк, имеющих более одной цифры перед десятичной точкой, например, 12345.3Е3.

6) Мантисса домножается на 10p, где p – скорректированный порядок.


Пример:


Строка 12.435E-3

Поскольку первый символ не является символом знака, подразумевается положительная мантисса.

Первый символ является цифрой. Текущий номер обрабатываемой цифры равен нулю, поэтому формируется мантисса, равная 1·100.

Второй символ также является цифрой. К мантиссе добавляется величина 2·10-1.

Третий символ является точкой. Запоминается текущее количество обработанных цифр для последующей коррекции порядка.

Аналогичные операции проводятся с остальными символами вплоть до символа E.

Строка после символа E обрабатывается как целое число со значением –3.

Производится коррекция порядка: к числу –3 добавляется количество обработанных цифр до десятичной точки. –3+(–1) = –4.

Результатом преобразования будет являться число 1.2435E–4.


Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.