
- •1.4. Алфавитное представление и преобразование информации
- •Глава 2
- •2.1. Непозиционные системы счисления
- •2.2. Позиционные системы счисления
- •Неоднородные позиционные системы счисления
- •Однородные позиционные системы счисления
- •2.3. Кодированные позиционные системы счисления
- •2.4. Системы счисления специального назначения
- •2.6. Символические системы счисления
- •2.7. Перевод чисел из одной системы счисления в другую
- •Перевод целых чисел из одной позиционной системы счисления в другую
- •2.8. Выбор системы счисления для применения эвм
- •2.9. Двоичная система счисления
- •2.10. Представление двоичных чисел в эвм
- •2.11. Точность представления чисел в эвм
- •Глава 3
- •3.1. Основные понятия
- •3.2. Операция алгебраического сложения в эвм
- •3.3. Операция сдвига
- •3.4. Сложение чисел в машинах с плавающей запятой
- •8.5. Округление чисел в эвм
- •3.6. Точность выполнения операций в машине с плавающей запятой
- •3.7. Вычисления с двойной точностью
- •Глава 4
- •4.1. Общие сведения об операции умножения
- •4.2. Умножение, выполняемое методом накопления частичных произведений
- •4.3. Сравнение схем умножения методом накопления
- •4.4. Методы ускорения операции умножения
- •4.5. Умножение чисел, заданных в дополнительном коде
- •4.6. Умножение чисел в машинах с плавающей запятой
- •4.7. Особенности выполнения операции умножения в современных эвм
- •4.8. Деление чисел с восстановлением остатков
- •4. 9. Деление без восстановления остатков
- •4.10. Машинные схемы деления
- •4.11. Деление чисел в дополнительном коде
- •4.13. Деление чисел в машинах с плавающей запятой
- •Глава 6
- •6.1. Сложение в прямых д-кодах
- •6.2. Сложение чисел в инверсных д-кодах
- •Для кода д2
- •6.3. Сдвиг д-кодов
- •6.4. Умножение чисел в д-кодах
- •6.5. Деление чисел в д-кодах
- •6.6. Перевод чисел в д-кодах
4.13. Деление чисел в машинах с плавающей запятой
Если числа А и В заданы в нормальной форме, то их частное будет равно
Y=а : b= (a : b) • 2m1 - m2,
где а и b — мантиссы, а т1 и т2 — порядки соответственно чисел А и В. Отсюда следует, что операция деления в машинах с плавающей запятой выполняется в пять этапов.
1-й этап. Определение знака частного путем сложения по модулю 2 знаковых цифр мантисс операндов.
2-й этап. Деление модулей мантисс операндов по правилам деления чисел с фиксированной запятой.
3-й этап. Определение порядка частного путем вычитания порядка делителя из порядка делимого.
4-й этап. Нормализация результата и его округление.
5-й этап. Присвоение знака мантиссе результата.
Два первых этапа полностью совпадают с этапами деления чисел с фиксированной запятой. Третий этап представляет собой обычное сложение в инверсных кодах.
При делении нормализованных чисел денормализация результата возможна только влево и только на один разряд. Это обусловлено тем, что мантисса любого нормализованного числа лежит в пределах
2 -1 ≤ | а|< 1 — 2 -п.
Тогда наименьшая и наибольшая возможные величины мантиссы частного равны соответственно
|ymin| = 2 -1 / (1 — 2 -п)> 2 -1 ; |ymax| = (1 — 2 -п) / 2 -1 =2 — 2 –( п-1)< 2 ,
т. е. мантисса частного лежит в пределах
2 -1< | у |<2.
Поэтому на четвертом этапе может возникнуть необходимость нормализации мантиссы частного путем ее сдвига вправо на один разряд и увеличения порядка частного на единицу. Если же перед делением сдвинуть делимое на один разряд вправо, то на 4-м этапе может потребоваться нормализация результатов влево на 1 разряд.
Пример. Заданы [А] пр =11101101,
[B] пр =11010110
порядок мантисс
1- й этап: определение знака частного: 1 1
2- й этап: деление мантисс:
|y| = |а| : |b| ≈ 0,1101.
3- й этап: определение порядка частного
[m a] ДМ =11,010
+
[m b] ДМ =00,101
[m y] ДМ =11,111
Перевод порядка частного в прямой код
[m y] пр =1,001
4-й этап: частное получилось нормализованным, поэтому производится только округление мантиссы
5-й этап: результат [Y] пр = А/В = 10011111.
При выполнении третьего этапа порядок частного может оказаться больше допустимого, т.е. произойдет переполнение разрядной сетки, которое расценивается как аварийная ситуация. Может быть также получен порядок частного, который меньше допустимого. Если на втором этапе вычислено частное | у | > 1, то на четвертом этапе при сдвиге частного вправо его порядок должен быть увеличен на единицу. При этом становится окончательно ясно, во-первых, возникло ли переполнение разрядной сетки порядка или нет, во-вторых, будет ли порядок частного меньше допустимого значения. Если имеет место исчезновение порядка, то результат деления по указанию программиста заменяется машинным нулем.