![]()
Главная Обратная связь Дисциплины:
Архитектура (936) ![]()
|
Арифметические операции над двоичными числами с плавающей точкой
В современных ЭВМ числа с плавающей точкой хранятся в памяти машин, имея мантиссу Операция сложения (вычитания) производится в следующей последовательности. 1. Сравниваются порядки (характеристики) исходных чисел путем их вычитания. ∆р = р1 – р2. При выполнении этой операции определяется, одинаковый ли порядок имеют исходные слагаемые. 2. Если разность порядков равна нулю, то это значит, что одноименные разряды мантисс имеют одинаковые веса (двоичный порядок). В противном случае должно проводиться вырав-нивание порядков. 3. Для выравнивания порядков число с меньшим порядком сдвигается вправо на разницу порядков ∆р. Младшие выталкиваемые разряды при этом теряются. 4. После выравнивания порядков мантиссы чисел можно складывать (вычитать) в зависи-мости от требуемой операции. Операция вычитания заменяется операцией сложения в соответст-вии с данными табл. 3.13. Действия над слагаемыми производятся в обратном коде или дополнительном коде по общим правилам. 5. Порядок результата берется равным большему порядку. 6. Если мантисса результата не нормализована, то осуществляются нормализация и коррекция значений порядка. Операция умножения (деления) чисел с плавающей точкой также требует разных действий над порядками и мантиссами. Алгоритмы этих операций выполняются в следующей последовательности. 1. При умножении (делении) порядки складываются (вычитаются) так, как это делается над числами с фиксированной точкой. 2. При умножении (делении) мантиссы перемножаются (делятся). 3. Знаки произведения (частного) формируются путем сложения знаковых разрядов сомножителей (делимого и делителя). Возможные переносы из знакового разряда игнорируются. Арифметические операции над двоично-десятичными кодами чисел При обработке больших массивов экономической информации переводы чисел из десятичной системы в двоичную и обратно могут требовать значительного машинного времени. Некоторые образцы ЭВМ поэтому имеют или встроенные, или подключаемые блоки, которые обрабатывают десятичные целые числа в их двоично-десятичном представлении. Действия над ними также приводятся к операции алгебраического сложения отдельных цифр чисел, представленных дополнительными кодами в соответствии с табл. 3.13. Существует несколько алгоритмов сложения двоично-десятичных кодов десятичных чисел. Приведем один из алгоритмов сложения, который получил довольно широкое распространение. 1. Сложение чисел начинается с младших цифр (тетрад) и производится с учетом возникающих переносов из младших разрядов в старшие. 2. Знак суммы формируется специальной логической схемой по знаку большего слагаемого. 3. Для того чтобы при сложении двоично-десятичных цифр возникали переносы, аналогичные при сложении чисел в десятичном представлении, необходимо проводить так называемую десятичную коррекцию. Для этого к каждой тетраде первого числа прибавляется дополнительно по цифре 610=01102, что позволяет исключить шесть неиспользуемых комбинаций (1010–1111)2, так как они кодируют шестнадцатеричные цифры А – F(числа 10-1510). 4. После операции суммирования осуществляется корректировка суммы. Из тех тетрад суммы, из которых не было переносов, изымаются ранее внесенные избытки 610=01102. Для этого проводится вторая коррекция. Операция вычитания заменяется, как и обычно, операцией сложения с числом –6, представленным дополнительным кодом 10102, но только в тех разрядах, в которых отсутствовали переносы. При этой второй коррекции переносы из тетрад блокируются. 5. Операция вычитания реализуется достаточно своеобразно. По общему правилу сложения (см. п. 1-4) к тетрадам числа с большим модулем прибавляются дополнительные коды тетрад другого числа. При этом первая коррекция не проводится, так как в дополнениях тетрад она учитывается автоматически. Знак результата определяется по знаку числа с большим модулем.
![]() |