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


Самосовершенствование Книга Наталии Правдиной "Если бы у меня была волшебная палочка" - это увлекательное и практическое руководство по достижению личного роста и исполнения желаний. Автор предлагает уникальный подход к самосовершенствованию, основанный на идее о том, что у каждого из нас внутри есть волшебная палочка, которая способна творить чудеса. Книга разделена на две части. В первой части Правдина исследует природу желаний и объясняет, почему многие из них остаются...

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

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

Жанр:

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

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

неизвестно

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

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

Год издания:

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

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

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

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

0,10000000=1·2-1+0·2-2+0·2-3+0·2-4+0·2-5+0·2-6+0·2-7+0·2-8


Таким образом, 0,10000000 представляет десятичное число 0,5, а 0,11000000 – число 0,75 (0,5+0,25).


Умножение чисел с фиксированной точкой отличается тем, что положение точки в результате смещается: например, умножение двух чисел формата 8:8 дает результат в формате 16:16. Это является следствием правила умножения в столбик: число знаков после точки в обоих перемножаемых числах суммируется для получения числа знаков после точки результата.

Похожая ситуация наблюдается и для деления – 16:16/8:8 = 8:8.

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

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

Для решения этой проблемы используется формат с плавающей точкой. Как следует из названия, десятичная точка не закреплена в фиксированной позиции, а может подставляться в произвольное место. Смещение десятичной точки от начального положения называется порядком числа, а само представление числа без учета положения точки – мантиссой. Таким образом, двоичное число 0100,10012 может быть представлено в виде 010010012 (мантисса) и –4 (порядок). Значение –4 показывает, что для получения правильного значения представленного числа следует перенести десятичную точку на 4 разряда влево.

Значение порядка специально записано в десятичном виде. Поскольку порядок может быть как положительным, так и отрицательным (т.е. десятичная точка переносится как влево, так и вправо), для его записи необходимо использовать число со знаком. Это несколько усложняет преобразования чисел с плавающей точкой, поэтому вместо числа со знаком используется обычное положительное число, но с одним замечанием: отсутствию смещения десятичной точки соответствует некоторое положительное число. Обычно это половина от возможного максимального значения порядка. Например, если для порядка выделено 8-разрядное двоичное число с возможными значениями от 0 до 255, то можно условиться, что значение порядка 128 соответствует отсутствию смещения десятичной точки. Тогда смещение на 4 разряда влево будет представлено порядком 128-4=124, или 011111002.

С использованием всего 8 двоичных разрядов оказывается возможным смещение десятичной точки на 128 разрядов влево или на 127 разрядов вправо. Таким образом, эквивалентное по представляемому диапазону число с фиксированной точкой должно иметь по меньшей мере 256 двоичных разрядов. Формат с плавающей точкой оказывается значительно экономнее.

Одно и то же число может быть записано в формате с плавающей точкой различными способами. Следующие записи будут эквивалентны:


00001,111·21, 0000,1111·22, 000,01111·23.


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

В действительности, поскольку старший разряд в нормализованной записи всегда равен 1, его --">

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


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