- •Арифметические операции в эвм
- •1.1.2. Представление целых чисел со знаком
- •1.2. Арифметические действия над целыми числами.
- •1.2.1 Арифметические операции в двоичной системе счисления.
- •1.2.2. Сложение и вычитание целых чисел со знаком в эвм.
- •2. Операции над числами с плавающей точкой
- •2.1. Представление вещественных чисел в эвм .
- •2.1.1. Форматы представления вещественных чисел.
- •2.1.2. Нормализованное представление вещественных чисел
- •2.2. Арифметические действия над вещественными числами.
- •2.2.1 Сложение и вычитание вещественных чисел.
- •2.2.2. Умножение и деление вественных чисел.
- •Содержание отчета
2.2. Арифметические действия над вещественными числами.
2.2.1 Сложение и вычитание вещественных чисел.
Выполнение арифметических операций над вещественными числами отличается от аналогичных операций над целыми числами.
К началу выполнения арифметического действия операнды операции помещаются в соответствующие регистры АЛУ.
При сложении и вычитании сначала производится подготовительная операция, называемая выравниванием порядков.
В процессе выравнивания порядков мантисса числа с меньшим порядком сдвигается в своем регистре вправо на количество разрядов, равное разности порядков операндов. После каждого сдвига порядок увеличивается на единицу.
В результате выравнивания порядков одноименные разряды чисел оказываются расположенными в соответствующих разрядах обоих регистров, после чего мантиссы складываются или вычитаются.
В случае необходимости полученный результат нормализуется путем сдвига мантиссы результата влево. После каждого сдвига влево порядок результата уменьшается на единицу.
В целом оперции сложения, вычитания чиселпредставленных в формате с плавающей точкой выполняются в следующей последовательности:
1) Осуществляется сравнение порядков (при этом поскольку в форматах хранятся не сами порядки а смещенные порядки, как целые беззнаковые числа, то их сравнение осуществляется путем вычитания их как целых беззнаковых чисел).
2) Производится выранивание порядков числа с меньшим порядком в сторону числа с большим порядком.
3) Производится алгебраическое сложение.
4) Производится нормализация результатов.
Пример 3.Сложить двоичные нормализованные числа 0.10111•2–1и 0.11011*210. Разность порядков слагаемых здесь равна
Пример 4.Выполнить вычитание двоичных нормализованных чисел 0.10101*210и 0.11101*21. Разность порядков уменьшаемого и вычитаемого здесь равна единице, поэтому перед вычитанием мантисса второго числа сдвигается на один разряд вправо:
При сложении, вычитании мантисс может возникнуть нарушение нормализации (денормализация) влево на 1 разряд. Для получения нормализованного результата необходимо мантиссу сдвинуть на 1 разряд вправо, а порядок увеличить на 1.
Может возникнуть переполнение порядков. При сложении мантисс близких по модулю друг к другу, но имеющих разные знаки может возникнуть денормализация впрао на любое число разрядов вплоть до нулей. Если получились все нули, то результату присваевается машинный ноль (потеря значимости).
Если мантисса не нулевая и имеет место денормализация вправо, то для получения нормализованного результата мантисса сдвигается влево на соответствующее число разрядов (пока старшаая разрядная цифра остается равной нулю), а порядок порядок уменьшается на эту величину. В этом случае может возникнуть антипереполнение.
Задание 2.
Самостоятельно выполните в четырехбайтном формате сложение и вычитание двух вещественых чисел, выбранных из таблицы №2, предварительно переведя их в двоичную систему счисления и осуществите проверку результатов в десятичной системе.
2.2.2. Умножение и деление вественных чисел.
При умножениидвух нормализованных чисел их порядки складываются, а мантиссы перемножаются.
Пример5 .Выполнить умножение двоичных нормализованных чисел:
(0.11101*2101)*(0.1001*211) = (0.11101*0.1001)* 2(101+11)= 0.100000101*21000.
При делении двух нормализованных чисел из порядка делимого вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя. Затем в случае необходимости полученный результат нормализуется.
Пример 6.Выполнить деление двоичных нормализованных чисел:
0.1111*2100: 0.101*211= (0.1111 : 0.101)*2(100–11)= 1.1*21= 0.11•210.
Задание 3.
Самостоятельно выполните в четырехбайтном формате умножение и деление двух вещественых чисел, выбранных из таблицы №2, предварительно переведя их в двоичную систему счисления и осуществите проверку результатов в десятичной системе.