На главную
Подписка
Новости










Главная / MS-DOS / MS-DOS. РУКОВОДСТВО РАЗРАБОТЧИКА / Глава 10 / Вычисления в 2-ной системе Сделать домашней страницей Добавить в избранное Написать писмо

НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Вычисления в 2-ной системе

Обычно, число 2 может быть возведено в степень посредством простого сдвига, как раз то, что делает NPX своей командой FSCALE. К сожалению, это не является полным решением, так как целые степени числа 10 не соответствуют целым степеням числа 2. Необходимо вычислить некоторую дробную часть числа 2. Для этого служит команда NPX F2XM1 (смотрите правило А).


Команда F2XM1 может возводить 2 в степень Х, где значение Х лежит в диапазоне от 0.0 до 0.5 включительно. Взяв произвольное число Х, мы можем разбить его на целую и дробную части, вычислив следующие выражения:


 целая (Х) = FRNDINT(X)
дробная(Х) = FSUB X - целая(Х)

Целая часть Х используется в FSCALE для возведения числа 2 в целую степень, а дробная часть применяется командой F2XM1. Мы можем использовать две последовательные операции, так как знаем, что для любых значений Y и Z справедливо следующее равенство:


2(Y+Z)  = 2(Y) * 2(Z)

Абсолютное значение дробной части Х находится в пределах от 0.0 до 0.5, с учетом того, что управление округлением NPX установлено в режим округления к ближайшему, что обеспечивает максимальную дробную часть, равную 0.5.


Затем мы можем вычислить весь результат, применив F2XM1, прибавив 1 обратно к результату, и использовав FSCALE. Конечно, если дробная часть отрицательная, мы должны удостовериться, что применяем ее абсолютное значение и для получения правильного результата использовать равенство


2(Y-Z) = 2(Y)/2(Z)

Это последовательность событий имеет место в программе EXP2, находящаяся ближе к концу следующего листинга (Листинг 10-2).


НАЗАД СОДЕРЖАНИЕ ВПЕРЁД

Hosted by uCoz