Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л_8.DOC
Скачиваний:
0
Добавлен:
15.04.2019
Размер:
64 Кб
Скачать

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).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]