
- •Системы счисления
- •Двоичная система счисления
- •Восьмеричная система счисления
- •Шестнадцатеричная система счисления
- •Критерии выбора системы счисления
- •Перевод чисел из одной системы счисления в другую
- •Перевод целых чисел
- •Перевод правильных дробей
- •Перевод чисел из одной системы счисления в другую, основание которой кратно степени 2
- •Кодирование чисел
- •Переполнение разрядной сетки
- •Модифицированные коды
- •Округление
- •Нормализация чисел
- •Сложение чисел с плавающей запятой
- •Умножения чисел в прямых кодах
- •Умножение с хранением переносов
- •Умножение на два разряда множителя одновременнов прямых кодах
- •Умножение дробных чисел в дополнительных кодах
- •Умножении целых чисел в дополнительных кодах
- •Умножение на два разряда множителя в дополнительных кодах
- •Матричные методы умножения
- •Машинные методы деления
- •Деление чисел в прямых кодах
- •Деление чисел в дополнительных кодах
- •Методы ускорения деления
- •Двоично-десятичные коды
- •Суммирование чисел с одинаковыми знаками в bcd-коде
- •Суммирование чисел с разными знаками в bcd-коде
- •Логические основы вычислительной техники Двоичные переменные и булевы функции
- •Способы задания булевых функций
- •Основные понятия алгебры логики
- •Основные законы алгебры логики
- •Формы представления функций алгебры логики
- •Системы функций алгебры логики
- •Минимизация фал
- •Метод Квайна
- •Метод Блейка - Порецкого
- •Метод минимизирующих карт Карно (Вейча)
- •Б в Рис. 19. Таблица истинности и карта Карно
- •Минимизация конъюнктивных нормальных форм
- •Минимизация не полностью определенных фал
- •Кубическое задание функций алгебры логики
- •Метод Квайна −Мак-Класки
- •Алгоритм извлечения (Рота)
- •Нахождение множества простых импликант
- •Определение l-экстремалей
- •Минимизация фал методом преобразования логических выражений
- •Применение правил и законов алгебры логики к синтезу некоторых цифровых устройств Синтез одноразрядного полного комбинационного сумматора
- •Синтез одноразрядного комбинационного полусумматора
- •Синтез одноразрядного полного комбинационного сумматора на двух полусумматорах
- •Синтез одноразрядного комбинационного вычитателя
- •Объединенная схема одноразрядного комбинационного сумматора-вычитателя
- •Т риггер со счетным входом как полный одноразрядный сумматор
- •Введение в теорию конечных автоматов Основные понятия теории автоматов
- •Способы задания автоматов
- •Структурный автомат
- •Память автомата
- •Канонический метод структурного синтеза автоматов
- •Принцип микропрограммного управления
- •Граф-схема алгоритма
- •Пример синтеза мпа по гса
- •Синтез мпа Мили по гса
- •Синхронизация автоматов
Умножении целых чисел в дополнительных кодах
При представлении целых чисел в дополнительном коде знаковый разряд входит в число n разрядов. Следовательно, при умножении целых чисел (в отличие от дробных) в дополнительных кодах знаковый разряд участвует в умножении наряду со значащими. То есть умножение ведется на [Mт]доп , а не на Мт.
1) Mн > 0,
Mт > 0.
Как отмечалось выше, в этом случае умножение выполняется по правилам умножения чисел в прямых кодах.
2) Мн>0,
Mт<0,
[Мт]доп = 2n – Мт.
Т
ак
как сомножители имеют разные знаки, то
произведение Мн∙Мт<0,
следовательно, [Mн∙Мт]доп=22n
- Mн∙Мт. Однако при умножении
Мн∙[Мт]доп
получается Mн
∙(2n-Mт)
=2n Mн
- Mн∙Мт. Следовательно, погрешность
в этом случае равна Δ =
22n–Mн∙Мт–2n
Mн+Mн∙Мт = 22n–2n
Mн = [–Мн]доп∙22n
= [ [Мн]доп]доп∙22n.
Пример: Mн = +110
Mт = -101
[Mн]доп = 0.110
[Mт]доп = 1.011
=
[- Mн]доп
= 1.010
0.000
+ 0.110 = Mн∙b4
0.110
0.011 0 ∙2-1
+ 0.110 = Mн∙b3
1.001 0 (возникло переполнение)
0.100 10 ∙2-1 (коррекция)
0.010 010 ∙2-1
+ 0.110 = Mн∙b1
1.000 010 (возникло переполнение)
0.100 0010 ∙2-1 (коррекция)
+ 1.010 (поправка)
1.110 0010 [MнMт]доп
- 001 1110 MнMт
3) Мн<0,
Мт>0.
Здесь, как и при умножении дробных чисел, возможны два случая:
a) с вводом поправки в получаемое произведение
[Мн]доп = 2n – Mн.
Как и ранее, требуется получить [Мн∙Мт]доп= 22n - Мн∙Мт. Получаем
(2n - Мн) ∙ Мт = 2n ∙ Мт - Мн∙Мт.
= 22n
- Мн∙Мт - 2n
∙ Мт + Мн∙Мт = 2n(2n
- Мт) = [-Мт]доп ∙
2n ;
б) вариант без ввода поправки рассмотрим применительно к алгоритму умножения Г (как и ранее это справедливо и для других алгоритмов):
Mн∙Mт = A∙B = [A ∙ b1 ∙ 2-1 ]доп + [A ∙ b2 ∙ 2 -2]доп+- ... + [A ∙ bn ∙ 2-n]доп=
=[A ∙ b1 ∙ 2-1 + A ∙ b2 ∙ 2 –2 +- ... + A ∙ bn ∙ 2-n]доп=[Мн∙Мт]доп.
Пример: Мн = -110 Мт = 101 [Мн]доп = 1.010
[Мт]доп = 0.101
b1 ... b4
0.0000000
+ 0.0000000 = [MH ∙ b1]доп ∙ 2-1
0.0000000
+
1.1101000
= [MH
∙ b2]доп
∙ 2-2
1.1101000
+
1.1111010
= [MH
∙ b4]доп
∙ 2-4
1.1100010
4) Mн < 0
Mт < 0
При этом сочетании знаков сомножителей в результате должно быть получено:
[Mн]доп = 2n – Mн,
[Mт]доп = 2n – Mт,
Mн ∙Mт = 22n - [Mн Mт]доп.
При умножении [Mн]доп∙[Mн]доп получается:
[Mн]доп∙[Mн]д
=[Mн]доп
( 2n -
Mт ) = 2n
[Mн]доп
-
Пример: Мн = -110
Mт = -101
[Mн]доп = 1.010
[Mт]доп = 1. 011
b1 ... b4
= [[Mн]доп]доп= 0.110
При умножении используем алгоритм Г.
0.0000000
1.1010000 = [Mн∙b1]доп∙2-1
1.1010000
1.1110100 = [Mн∙b3] доп∙2-3
1.1000100
1.1111010 = [Mн∙b4] доп∙2-4
1.0111110
0.110 (поправка)
0.0011110 Mн Mт