Главная Обратная связь

Дисциплины:

Архитектура (936)
Биология (6393)
География (744)
История (25)
Компьютеры (1497)
Кулинария (2184)
Культура (3938)
Литература (5778)
Математика (5918)
Медицина (9278)
Механика (2776)
Образование (13883)
Политика (26404)
Правоведение (321)
Психология (56518)
Религия (1833)
Социология (23400)
Спорт (2350)
Строительство (17942)
Технология (5741)
Транспорт (14634)
Физика (1043)
Философия (440)
Финансы (17336)
Химия (4931)
Экология (6055)
Экономика (9200)
Электроника (7621)






py– px> m. В качестве результата может быть взято второе слагаемое



Особенности выполнения операций над числами с плавающей точкой

Рассмотрим особенности структуры АЛУ для выполнения арифметических операций над числами с плавающей точкой.

Алгоритмы выполнения операций над числами с плавающей точкой были рассмотрены в п.2 лекции №4, поэтому мы их повторять не будем, а сделаем лишь ряд замечаний.

1. При сложении и вычитании чисел в нормализованном виде выравнивание порядков начинается с их сравнения.

Мантисса числа с меньшим порядком при выравнивании сдвигается вправо на число разрядов, равное разности порядков. При сравнении порядков возможны пять случаев. Обозначим через pxиpyсоответственно порядки чисел Xи Y, а черезm– число разрядов мантиссы.

1. pxpy> m. В качестве результата суммирования сразу может быть взято первое слагаемое, так как при выравнивании порядков все разряды мантиссы второго слагаемого принимают нулевое значение.

py– px> m. В качестве результата может быть взято второе слагаемое.

3. pxpy= 0. Можно приступить к сложению мантисс.

4. pxpy= k1 (k1<m). Мантисса второго слагаемого сдвигается на k1разрядов вправо, затем производится суммирование мантисс.

5. pypx= k2(k2<m). По аналогии с п.4 перед выполнением суммирования мантисс производится сдвиг на k2 разрядов вправо мантиссы первого слагаемого.

За порядок результата при выполнении суммирования принимается больший из порядков операндов. Сложение (вычитание) мантисс производится по правилам сложения (вычитания) чисел с фиксированной точкой.

Нормализация суммы (разности) производится в случае невыполнения условия для мантиссы qzрезультата 0.1≤qz<1. При этом, если qz1, порядокpzувеличивается на 1, а мантисса qzсдвигается на один двоичный разряд вправо, что дает |qz|<1. Если |qz|<0.1, то мантисса результата сдвигается на один разряд влево при одновременном уменьшении порядка результата на 1.

Эти операции проводятся до тех пор, пока не будет выполнено условие qz0.1 (при qz=0нормализация не выполняется).



При получении порядка +pz, переполняющегоразрядную сетку, должен формироваться сигнал прерывания из-за переполнения порядка. При получении порядка pz, переполняющего разрядную сетку формируются нулевой результат и признак исчезновения порядка (машинный нуль).

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

2.При умножении чисел с плавающей точкой порядки сомножителей складываются, а мантиссы перемножаются. Произведение нормализуется и ему присваивается знак «+», если сомножители имеют одинаковые знаки, и знак «-», если знаки сомножителей разные. Если мантисса множимого или множителя равна 0, то произведению присваивается значение 0 без выполнения умножения мантисс.

Если при суммировании порядков возникло переполнение и порядок отрицательный, то результату можно присвоить значение 0 (машинный нуль) без перемножения мантисс. Если при суммировании порядков возникает переполнение и порядок положительный, может оказаться, что результат все-таки находится в диапазоне чисел, представляемых в ЭВМ, так как при умножении мантисс возможно нарушение нормализации вправо, и после нормализации мантиссы переполнение в порядке может исчезнуть.



3.При делении мантиссы делятся, а порядки вычитаются. Если делимое равно 0, то и частное равно 0 без выполнения деления мантисс. Если при вычитании порядков образовалось переполнение с положительным знаком (-(-)) или если делитель равен 0, то деление не производится и формируется сигнал прерывания деления на 0.

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

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

 


Просмотров 171

Эта страница нарушает авторские права

allrefrs.ru - 2020 год. Все права принадлежат их авторам!