- •Раздел 3. Технические средства информационных технологий Лекция № 8. Двоичная арифметика
- •1. Выполнение арифметических операций над числами с фиксированной запятой.
- •2. Выполнение арифметических операций над числами с плавающей запятой.
- •1 Выполнение арифметических операций над
- •1.1 Сложение положительных чисел
- •1.2 Сложение отрицательных чисел
- •1.3 Умножение двух чисел
- •1.4 Деление чисел
- •2 Выполнение арифметических операций над
1.2 Сложение отрицательных чисел
Использование в ЭВМ прямого кода требует наличия специальных устройств для выполнения операции вычитания (сложения отрицательных чисел). Вместе с тем, как отмечалось ранее, операцию вычитания можно заменить операцией сложения, если использовать специальные коды отрицательных чисел. Основная идея замены вычитания чисел их сложением заключается в том, что область отрицательных чисел переносится в область положительных чисел и в операции сложения участвуют не сами числа, а их изображения (рисунок 1).
Рисунок 1 – Область чисел и их изображений
С учетом сказанного, сложение отрицательных чисел в ЭВМ выполняется в обратных или дополнительных кодах. Сформулируем правило сложения чисел, представленных в форме с фиксированной запятой в обратном коде.
Правило 1. Для того чтобы при сложении обратных кодов двух чисел получить обратный код суммы, необходимо сложить обратные коды слагаемых по правилам сложения двоичных чисел, рассматривая при этом знаковые разряды как обычные цифровые.
Если появляется единица переноса из знакового разряда, то ее следует циклически перенести в младший разряд и просуммировать с ранее полученным результатом.
Последнее обстоятельство (добавление единицы в младший разряд) увеличивает время выполнения операций сложения. Поэтому в ЭВМ чаще находят применение дополнительные коды. Сформулируем правило сложения чисел, представленных в форме с фиксированной запятой в дополнительном коде.
Правило 2. Для того чтобы при сложении дополнительных кодов двух чисел получить дополнительный код суммы, необходимо сложить дополнительные коды слагаемых по правилам сложения двоичных чисел, рассматривая знаковые разряды как обычные цифровые. При возникновении единицы переноса из знакового разряда ее следует опустить (не учитывать).
Для получения окончательного результата сложения, независимо от того, какие коды чисел использовались (обратные или дополнительные), необходимо записать полученный результат в прямом коде.
Рассмотрим записанные алгоритмы на примере.
Пример: Сложить два числа А = 11 и В = -13,25 в обратном коде.
А(2) = 1011; [А]ПК = 0.1011,00; [А]ОК = 0.1011,00
В(2) = -1101,01; [В]ПК = 1.1101,01; [В]ОК = 1.0010,10
[А + В]ОК = 0.1011,00 = 1.1101,10.
+
1.0010,10
1.1101,10
[А + В]ПК = 1.0010,01.
Таким образом, А + В = -10,01(2) = -2,25(10). Результат сложения правильный.
Пример: Сложить два числа А = 11 и В = -13,25 в дополнительном коде.
А(2) = 1011; [А]ПК = 0.1011,00; [А]ДК = 0.1011,00
В(2) = -1101,01; [В]ПК = 1.1101,01; [В]ДК = 1.0010,11
[А + В]ДК = 0.1011,00 = 1.1101,11.
+
1.0010,11
1.1101,11
[А + В]ПК = 1.0010,01.
Таким образом, А + В = -10,01(2) = -2,25(10). Результат сложения правильный.
1.3 Умножение двух чисел
Умножение двоичных многоразрядных чисел, представленных в естественной форме, производится путем образования частичных произведений и последующего их суммирования. Каждое частичное произведение равно нулю, если в соответствующем разряде множителя стоит 0, или равно множимому, сдвинутому на соответствующее число разрядов влево, если в разряде множителя стоит 1. При этом используются прямые коды чисел.
Таким образом, операция умножения многоразрядных двоичных чисел внутри ЭВМ сводится к операции сдвига и сложения. Положение запятой, отделяющей целую часть от дробной части, определяется так же, как и при умножении десятичных чисел.
Алгоритм выполнения операции умножения:
1. Определить знак произведения. Для этих целей применить операцию сложения по модулю «2» к знаковым разрядам сомножителей.
Результат операции сложения по модулю «2» определяется следующим образом:
0 0 = 0;
0 1 = 1;
1 0 = 1;
1 1 = 0.
2. Перемножить модули чисел без учета знакового разряда следующим образом:
а) если в первом (младшем) разряде множителя расположена 1, то записать в сумматор модуль множимого, а если 0 – то во все разряды сумматора записать нули;
б) если во втором разряде множителя расположена 1, то прибавить к содержимому сумматора множимое, сдвинутое на один разряд влево, а если 0 – то прибавить нули во всех разрядах к содержимому сумматора;
в) выполнять пункт б) n – 1 раз, где n – число значащих разрядов в множителе.
3. Получить окончательный результат путем прибавления знака произведения, полученного на первом этапе в знаковый разряд результата.
Пример: Перемножить числа А = 18 и В = -5,5.
А(2) = 10010; [А]ПК = 0.10010;
В(2) = - 101,1; [В]ПК = 1.101,1.
Определим знак произведения:
0 1 = 1.
Перемножим модули чисел:
10010
101,1
10010
+
10010
110110
+
00000
110110
+
10010
1100011,0
Запишем окончательный результат:
[А х В]ПК = 1.1100011, А х В = - 99(10).
