Assembler - язык неограниченных возможностей

         

Вычисления с фиксированной запятой


Существует широкий класс задач, где требуются вычисления с вещественными числами, но не требуется высокая точность вычислений. Например, в этот класс задач попадают практически все процедуры, оперирующие с координатами и цветами точек в двух- и трехмерном пространстве. Так как в результате все будет выводиться на экран с ограниченным разрешением и каждая компонента цвета будет записываться как 6- или 8-битное целое число, не требуются все те десятки знаков после запятой, которые вычисляет FPU. А раз не требуется высокая точность, можно выполнить вычисление значительно быстрее. Чаще всего для представления вещественных чисел с ограниченной точностью используется формат чисел с фиксированной запятой: целая часть числа представляется в виде обычного целого числа, и дробная часть — точно так же в виде целого числа (как мы записываем небольшие вещественные числа на бумаге).

Наиболее распространенные форматы для чисел с фиксированной запятой — 8:8 и 16:16. В первом случае на целую и на дробную части числа отводится по одному байту, а во втором — по одному слову. Операции с этими двумя форматами можно выполнять, помещая число в регистр (16-битаый — для формата 8:8 и 32-битный — для формата 16:16). Разумеется, можно придумать и использовать совершенно любой формат, например 5:11, но некоторые операции над такими числами могут усложниться.



Содержание раздела