- •Раздел 3. Технические средства информационных технологий Лекция № 8. Двоичная арифметика
- •1. Выполнение арифметических операций над числами с фиксированной запятой.
- •2. Выполнение арифметических операций над числами с плавающей запятой.
- •1 Выполнение арифметических операций над
- •1.1 Сложение положительных чисел
- •1.2 Сложение отрицательных чисел
- •1.3 Умножение двух чисел
- •1.4 Деление чисел
- •2 Выполнение арифметических операций над
2 Выполнение арифметических операций над
числами с плавающей запятой
При выполнении арифметических операций над числами, представленными в форме с плавающей запятой, операции с мантиссами чисел выполняются, в основном, по алгоритмам, рассмотренным ранее. Но добавляются операции с порядками чисел, а также есть некоторые другие особенности. Рассмотрим их.
Для сложения двух чисел в нормальной форме необходимо выровнять их порядки, так как вес одноименных разрядов мантисс чисел с разными порядками неодинаков. Очевидно, что при выравнивании порядков сдвиг одного из чисел возможен только вправо (в сторону младших разрядов), так как сдвиг влево может привести к выходу за диапазон представления мантисс. Поэтому сдвигать нужно мантиссу числа, имеющего меньший порядок.
Сформулируем алгоритм алгебраического сложения чисел в нормальной форме.
Для алгебраического сложения двух чисел, представленных в форме с плавающей запятой, необходимо:
1. Определить разность порядков и число с меньшим порядком.
2. Сдвинуть вправо мантиссу числа с меньшим порядком на количество разрядов, равное модулю разности порядков.
3. Получить дополнительные коды мантисс.
4. Сложить мантиссы. Сумме приписать больший порядок.
5. Получить прямой код результата.
6. Нормализовать результат.
При умножении (делении) чисел, представленных в форме с плавающей запятой, выравнивать порядки не нужно. В этом случае для выполнения умножения (деления) чисел в нормальной форме нужно перемножить (разделить) мантиссы по алгоритмам, рассмотренным для чисел, представленных в естественной форме и к результату приписать порядок, равный сумме (разности) порядков исходных чисел.
Пример: Сложить числа А = -5,5(10) и В = 11(10) в формате с плавающей запятой.
А = -101,1(2); [А]ПК НФ = 0.11_1_1011 = 0.100_1_01011;
В = 1011(2); [В]ПК НФ = 0.100_0_1011 = 0.100_0_10110;
[А]ДК НФ = 0.100_1_10101
[А + В]ДК = 1.10101 = 0.01011;
+
0.10110
0.01011
[А + В]ПК НФ = 0.100_0_01011 = 0.11_0_1011;
(А + В) = 101,1(2) = 5,5(10).
