Пример. Сложить два десятичных числа 0 831 и 1 376.
Преобразуем отрицательное число 1 376 в дополнительный код, для чего во всех разрядах, кроме знакового, запишем дополнение до 9 к цифрам этих разрядов и затем прибавим единицу в младший разряд.
N2 = 1 376 в дополнительном коде N2ДОП = 1 624
Далее произведём сложение с передачей переносов в старшие разряды.
Переносы 11
Первое слагаемое N1 0 831
Второе слагаемое N2 1 624
---------
Сумма N1 + N2 0 455
Знаковые разряды суммируются по правилам сложения двоичных чисел, но
возникающие переносы отбрасываются.
В двоичной системе счисления дополнительный код формируется по правилу:
Цифры всех разрядов кроме знакового, инвертируются и в младший разряд прибавляется единица. Пример. N = 1 101102; NДОП = 1 010102.
Пример.Сложить два двоичных числа N1 = 0 10110 и N2 = 1 01101.
Пример.Сложить два двоичных числа N1 = 1 10110 и N2 = 0 01101. По отношению к предыдущему примеру знаки слагаемых изменены на обратные. Очевидно, ожидаемый результат N1 + N2 = 1 01001.
Переносы
Первое слагаемое N1 0 10110
Второе слагаемое N2 1 01010
------------
Сумма (N1 + N2)ДОП110111
Полученный результат есть число 1 01001 в дополнительном коде, то есть
N1 + N2 = 1 01001 = (N1 + N2)ДОП = 110111.
Таким образом, если результат сложения – отрицательное число, то оно оказывается представленным в дополнительном коде.
1.1.7 Выполнение операции умножения в двоичной системе счисления
При умножении определяются знак и модуль числа. Знак произведения определяя-ется суммированием знаковых разрядов без переноса (суммированием по модулю 2).
Абсолютное значение произведения (модуль) получают перемножением чисел без учёта их знаков.
Пример.Перемножить двоичные числа 1101 и 1011.При перемножении формируют-ся частичные произведения, которые суммируются с соответствующими сдвигами от-носительно друг друга.
1101 множимое
×1011 множитель
---------
1101 1-е частичное произведение
+ 1101 2-е частичное произведение
+ 0000 3-е частичное произведение
+1101 4-е частичное произведение
---------------
10001111 произведение.
В рассматриваемом примере необходимо суммировать одновременно несколько частичных произведений, что существенно затруднит формирование переносов.
Поэтому в цифровых устройствах ЦУ процесс суммирования частичных произве-дений осуществляют последовательно: формируется первое частичное произведение, к нему с соответствующим сдвигом прибавляют второе частичное произведение, к полученной сумме со сдвигом прибавляют следующее частичное произведение и так далее, пока не будут просуммированы все частичные произведения. Ниже приведён пример перемножения чисел 1101 и 1011. Процесс суммирования начинается с младшего частичного произведения, а частичные суммы сдвигаются вправо.
Структурная схема устройства, осуществляющего перемножение двух двоичных чисел (операционного устройства ОУ), приведена на рисунке ПР 2.1.
Состав и назначение функциональных узлов при перемножении двоичных чисел:
R1 – четырёхразрядный регистр хранения множителя; R2 – четырёхразрядный регистр хранения множимого; R3 – пятиразрядный (для учёта переносов) регистр результата; См – пятиразрядный сумматор; Сч – счётчик числа повторений цикла.
Так как результат произведения – 8-разрядное число, для хранения результата используем регистр R2, замещая в нём разряды множителя на младшие разряды произведения. Регистр R3' - регистр временного хранения (в течение времени суммирования) содержимого регистра R3.
1101 множимое
×1011 множитель
-----------------
1101 1-е частичное произведение
0110 1 сдвиг на один разряд вправо
+ 1101 2-е частичное произведение
10011 1 сумма 1-го и 2-го частичных произведений
01001 11 сдвиг на один разряд вправо
+ 0000 3-е частичное произведение
00100 111 сдвиг на один разряд вправо
+ 1101 4-е частичное произведение
1000 1111 произведение.
Рисунок ПР 2.1 – Структурная схема устройства умножения двоичных чисел (ОУ)
Работа перемножителя.Последовательность действий при умножении чисел 1011 и 1101 приведена в таблице ПР 2.1. Для получения результата:
1)получают частичные произведения множимого на цифры разрядов множителя, начиная со старших разрядов;
2) суммируют частичные произведения с числом, находящимся в регистре R3;
3) сдвигают содержимое регистров R2 и R3 на один разряд вправо;
4) пересылают содержимое младшего разряда R3 в старший разряд регистра R2. Процесс повторяется, пока не будут использованы все цифры множителя.
Работа устройства умножения двоичных чисел (операционного устройства ОУ) осу-ществляется по сигналам у1…у7 устройства управления (УУ), на схеме не показанного:
у1: R2← Сдв Пр(R2) – сдвиг содержимого регистра R2 на один разряд в право;
у2: R2 [4]← R3 [1] – пересылка в старший разряд регистра R2 содержимого
младшего разряда регистра R3;
у3: R3← См – занесение в R3 результата суммирования;.
у4: R3← 0 – установка регистра R3 в ноль;
у5: R3 ← Сдв Пр (R3) – сдвиг содержимого регистра R3 на один разряд вправо;
у6: Сч ← n - занесение в счётчик числа разрядов множителя;
Таблица 1.3 - Последовательность действий при перемножении двоичных чисел
Множимое
R1
Старшие
разряды
произве-
дения R3.
Множитель
и младшие
разряды ре-
зультата R2
Выполняемое действие
1. Исходное состояние
→
2. 1-е частичное произведение
0 ←1101
3. 1-я частичная сумма; R2 [4]← R3 [1]
→ 1101
4. R2← Сдв Пр(R2); R3 ← Сдв Пр (R3)
→
5. 2-е частичное произведение
1← 0011
6. 2-я частчная сумма; R2 [4]← R3 [1]
→ 1110
7. R2← Сдв Пр(R2); R3 ← Сдв Пр (R3)
→
8. 3-е частичное произведение
0← 1001
9. 3-я частичная сумма; R2 [4]← R3 [1]
→ 1111
10. R2← Сдв Пр(R2); R3 ← Сдв Пр (R3)
→
11. 4-е частичное произведение
1←0001
12. 4-я частичная сумма; R2 [4]← R3 [1]
→ 1111
13. R2← Сдв Пр(R2); R3 ← Сдв Пр (R3)
1000 1111
Произведение. Окончание вычислений.
В таблице определён состав микроопераций, однаконе показаны операции установки ОУ в «0», запись в счётчик числа разрядов множителя n и его уменьшения при выполнении микропрограммы; не показаны операции записи в регистры R1 и R2 множимого и множителя, не учтены признаки х1 и х2.
1.1.8 Выполнение операции сложения в двоично-десятичной системе счисления. Коррекция суммы
Способ суммирования десятичных цифр зависит от того, какой двоичный код выбран для представления десятичных цифр. Чаще других применяется код 8421 (таблица 1.3).
Название кода составлено из весовых коэффициентов разрядов двоичного кода.
Двоичные представления десятичных цифр суммируются по обычным правилам сложения двоичных чисел. Если полученная сумма содержит десять или более единиц, то формируется единица переноса, передаваемая в следующий разряд. При этом требуется коррекция суммы прибавлением к ней шести единиц (числа 01102)
Пример 1. Сложить десятичные цифры 6 и 2 и перенос 1, поступающий из предыдущего десятичного разряда и обозначенный стрелкой.
Десятичная система Код 8421
Переносы 1← 11 1←
Первая цифра 6 0110
Вторая цифра + 2 +0010
Сумма 9 1001
Коррекция ------
Результат 1001
Полученное число 10012 = 9, меньше 10 и коррекция суммы не требуется.
Пример 2.Сложить десятичные цифры 8 и 9.
Десятичная система Код 8421
Переносы 1 ← 0 ← 1← 0←
Первая цифра 8 1000
Вторая цифра + 9 +1001
Сумма 7 0001
Коррекция + 0110
Результат 0111
Сложение двух единиц в разряде 8 даёт в соответствующем разряде суммы «0» и перенос «1» из разряда 8. Появление этого переноса уменьшает сумму не на 10, а на 16 (вместо 100012 = 17 имеем 00012 = 1). Уход из суммы шести лишних единиц компенсируется прибавлением 6 единиц в ходе коррекции.
Пример 3. Сложить десятичные цифры 6 и 7.
Десятичная система Код 8421
Переносы 1 ← 0 ← 11 0←
Первая цифра 6 0110
Вторая цифра + 7 +0111
Сумма 3 1101
Коррекция + 0110
Результат 1 ← 0011
перенос
Здесь суммирование десятичных цифр в коде 8421 приводит к числу 11012 (1310).
Так как сумма больше 10, то необходимо передать перенос в следующий десятичный разряд, а сумму скорректировать, прибавив к ней шесть единиц. В процессе коррекции
возникает перенос из разряда 8, уменьшающий сумму на 16 единиц. Таким образом,
прибавление 6 и вычитание 16 обеспечивает требуемое уменьшение суммы на 10 единиц.
ПЗ 1. 2 Алгебраическое сложение с использованием дополнительного кода.
Пример 4. Сложить два десятичных числа 0 831 и 1 376.
Преобразуем отрицательное число 1 376 в дополнительный код, для чего во всех разрядах, кроме знакового, запишем дополнение до 9 к цифрам этих разрядов и затем прибавим единицу в младший разряд.
N2 = 1 376 в дополнительном коде N2ДОП = 1 624
Далее произведём сложение с передачей переносов в старшие разряды.
Переносы 11
Первое слагаемое N1 0 831
Второе слагаемое N2 1 624
---------
Сумма N1 + N2 0 455
Знаковые разряды суммируются по правилам сложения двоичных чисел, но
возникающие переносы отбрасываются.
В двоичной системе счисления дополнительный код формируется по правилу:
Цифры всех разрядов кроме знакового, инвертируются и в младший разряд прибавляется единица. Пример. N = 1 101102; NДОП = 1 010102.
При суммировании многоразрядных десятичных чисел отрицательные числа должны быть представлены в дополнительном коде. Дополнительный код отрицательного десятичного числа получается путём замены цифр разрядов, (кроме знакового) их дополнением до 9 с прибавлением затем в младший разряд единицы.
Пример 5. Сложить числа N1 = 836 и N2 = -298 (1298).
Дополнительный код числа -298. N2ДОП = 1702
Переносы 1
Первое число N10836
Второе число N2ДОП + 1702
Сумма N1 + N2ДОП 0538
Пример 6. Сложить числа N1 = -836 и N2 = 298.
Дополнительный код числа -836. N1ДОП = 1164
Переносы 11
Первое число N1ДОП1164
Второе число N2 + 0298
Сумма N1ДОП + N2 1538
Дополнение до 9 (обозначим а'i) десятичной цифры аi может быть получено прибавлением 6 и затем нахождением дополнения до 15 для этой суммы:
а'I = 9 - аi = 9 + 6 – (аi + 6) = 15 – (аi + 6).
При представлении десятичных цифр четырёхразрядным кодом 8421 дополнение до 15 получается простым инвертированием цифр разрядов двоичного кода.
Пример 7.Получить дополнительный код числа А = - 256.
1. Представляем число А10 = -256 в двоично-десятичном коде 8421:
А2-10 = 1 0010 0101 0110.
2. Во все тетрады добавляем 610 = 01102 :
1 0010 0101 0110
+ 0110 0110 0110
1 1000 1011 1100
3. Получаем обратный код, инвертируя цифры разрядов (кроме знакового):
АОБР 2-10 = 1 0111 0100 0011
АОБР 10 = 7 4 3
Видно, что каждая тетрада в АОБР 2-10 представляет собой дополнение до 9 к тетрадам прямого кода А.
4. Получаем дополнительный код АДОП 2-10, прибавляя к младшему разряду АОБР 2-10 единицу: