<<
>>

ПРЕОБРАЗОВАНИЯ ДВОИЧНЫХ ЧИСЕЛ С ПЛАВАЮЩЕЙ запятой в десятичные числа С ПЛАВАЮЩЕЙ ЗАПЯТОЙ

Программа ПДП32 выполняет обратное преобразование по отношению к программе ПП310, т. е. преобразует двоичное число с плавающей запятой (но уже знаковое

Программа прежде всего проверяет значение преобразуемого числа и в случае равенства его нулю обнуляет область результата и заканчивает работу.

Если исходное число отличается от нуля, программа переводит мантиссу в прямой код и определяет модуль и знак несмещенного двоичного порядка. Далее двоичная мантисса преобразуется с помощью подпрограммы ПФ16 в эквивалентную пятиразрядную двоично-десятичную мантиссу, которая сдвигается на один десятичный разряд влево подпрограммой Л4СВН:

В результате сдвига старший десятичный разряд мантиссы совмещается со старшей тетрадой байта. Если двоичный несмещенный порядок оказывается равным нулю, преобразование числа в целом окончено: оно округляется, нормализуется и записывается в память. При ненулевом порядке в зависимости от его знака выполняется либо умножение (знак «+») десятичной мантиссы на двоичную характеристику подпрограммой УФ 102, либо деление (знак «—») подпрограммой ДФ102.

Программа УФ 102 выполняет умножение шестиразрядной двоично-десятичной беззнаковой мантиссы на двоичную характеристику 2ІШ2_40Н| с формированием двоично-десятичной мантиссы и двоично-десятичного порядка:

Умножение мантиссы осуществляется методом двоично-десятичного сложения с накоплением, что неизбежно ведет к значительным затратам времени на выполнение программы при больших значениях двоичного порядка. Формирование двоично-десятичного порядка и нормализация вправо двоично-десятичной мантиссы производятся подпрограммой ПМАН6:

Программа ПМАН6 в случае переполнения двоичнодесятичной мантиссы при ее удвоении в программе УФ 102 сдвигает мантиссу на один десятичный разряд вправо и должным образом корректирует десятичный порядок.

Программа осуществляет деление методом последовательного выделения десятичных цифр делимого, начиная со старшей цифры, и деления их на 2 путем сдвига выделенной цифры на один двоичный разряд вправо. При этом формируются десятичная цифра частного и остаток от деления, равный 0 или 1. Этот остаток умножается

Программа 11Д1132 после выполнения умножения или деления десятичной мантиссы на двоичную характеристику округляет шестизначную мантиссу до четырехзначной по симметричному способу, устраняет переполнение мантиссы, возможное после ее округления, и записывает результат в память. Тестовые данные для программы ПДП32 можно заимствовать из табл. 3.3.

<< | >>
Источник: Гуртовцев А. Л., Гудыменко С. В.. Программы для микропроцессоров: Справ, пособие.— Мн.: Выш. шк.,1989.— 352 с.: ил.. 1989

Еще по теме ПРЕОБРАЗОВАНИЯ ДВОИЧНЫХ ЧИСЕЛ С ПЛАВАЮЩЕЙ запятой в десятичные числа С ПЛАВАЮЩЕЙ ЗАПЯТОЙ: