exponenta event banner

Процесс разделения

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

Предположим, вы хотите разделить два числа. Каждое из этих чисел представлено 8-битным словом, и каждое имеет двоично-точечное масштабирование 2-4. Кроме того, выход ограничен 8-битным словом с двоичным масштабированием только для точки 2-4.

Деление 9.1875 на 1.5000 показано в следующей модели.

Для этого примера:

Qa = 2 4 (4) (4) (Qb/Qc) = 24 (Qb/Qc).

Предполагая, что доступен большой тип данных, это может быть реализовано как

Qa = (24Qb) Qc,

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