Суммирование чисел с разными знаками в bcd-коде
Отрицательные BCD-коды должны представляться в прямом, обратном или дополнительном кодах. Особенностью BCD-кодов является то, что инверсия тетрады означает дополнение до 15, а для соответствующей десятичной цифры до 9. Следовательно, необходимо убрать разницу. Один из приемов формирования обратного BCD-кода состоит в добавлении во все тетрады отрицательного числа 0110, затем их инверсии.
При сложении чисел с разными знаками возможны следующие случаи.
1) a - b ≥ 0
a = 7 0 . 0111 [ a ]обр
b= -3 1 . 1100 [ b ]обр
4 10 . 0011
1
0 . 0100
При образовании инверсии отрицательной тетрады в нее добавляются 15 единиц. Эти 15 единиц находятся и в сумме. Но благодаря шестнадцатеричному переносу из тетрады уходит 16 единиц ( 15+1 − эта единица восстанавливается добавлением по цепи циклического переноса ).
-
a - b < 0
a = 3 0 . 0011 [ a ]обр
b = -7 1 . 1000 [ b ]обр
-4 1 . 1011
0 . 0100
Здесь, как и в предыдущем примере, в тетраде суммы пятнадцать лишних единиц. Но при переходе от инверсной формы к прямой лишние единицы уничтожаются сами собой. Это то же самое, что от значащей части суммы вычесть пятнадцать: 1011 - 1111 = 0100. Рассмотрим несколько примеров.
A = 378 0. 0011 0111 1000
– B = 169 1. 1110 1001 0110
A – B = 209 10. 0010 0000 1110
циклический перенос 1
0. 0010 0000 1111
Из последней тетрады нет переноса, таким образом, это соответствует заему в нее 16 единиц (вместо необходимых 10). Следовательно, из нее необходимо удалить лишние шесть единиц. Для этого в тетраду добавляется 10 - дополнение шести до шестнадцати:
0. 0010 0000 1111
1010
0. 0010 0000 1001
+ 2 0 9
A = 169 0. 0001 0110 1001
B = 378 1. 1100 1000 0111
A–B= - 209 1. 1101 1111 0000
0110
1. 1101 1111 0110
- 0010 0000 1001
- 2 0 9
Таким образом, в тетраду производится заем, если результат:
-
положительный и из тетрады нет переноса;
-
отрицательный и из тетрады есть перенос.
BCD-коды с избытком 3
Иначе говоря, это коды чисел из системы (BCD + 3). В этом коде каждая десятичная цифра ai представляется в виде двоичного эквивалента суммы ai+3. В отличие от BCD-кода код BCD+3 – самодополняющийся, но не имеющий свойства взвешенности. Применяется наиболее часто в десятичной арифметике, так как при выполнении двоичного суммирования легко выделить десятичный перенос.
Возможны следующие два случая сложения чисел в BCD-коде +3:
-
a + b ≤ 9 ; [ ( a + 3 ) + ( b + 3 ) ] ≤ 15.
И, следовательно, в тетраде суммы будут лишние 6 единиц. Чтобы тетрада суммы осталась тоже с избытком 3, нужно вычесть 3.
-
a + b ≥ 10; [ ( a + 3 ) + ( b + 3 ) ] ≥ 16.
Здесь во всех случаях возникает шестнадцатеричный перенос, вместе с которым тетраду суммы покинут и шесть избыточных единиц; чтобы тетрада суммы осталась с избытком 3, надо добавить 3.
Если складываются числа с разными знаками, то избыток в тетраде суммы будет равен нулю и суммирование, таким образом, сводится к правилам суммирования в BCD-коде.
Пример. Выполнить сложение чисел 169 и 378 в BCD-коде +3.
0.0100 1001 1100
A = 169 0.0110 1010 1011
B = 378 0.1011 0100 0111
A + B = 547 0011 0011 0011
0.1000 0111 1010
8 7 10
Пример . Выполнить вычитание из числа 378 числа 169 в BCD-коде +3.
A = 378 0.0110 1010 1011
B = 169 1.1011 0110 0011
A - B = 209 1 0.0010 0000 1110
циклический перенос 1
0.0010 0000 1111
+ 0011 -0011 -0011
0.0101 0011 1100
5 3 12
Пример. Выполнить вычитание из числа 169 числа 378 в BCD-коде +3.
A = 169 0.0100 1001 1100
B = 378 1.1001 0101 0100
A - B = -209 1.1101 1111 0000
-0011 -0011 +1100
1.1010 1100 0011
- 0101 0011 1100
5 3 12
Правило. Если из тетрады был перенос, надо добавить +0011, если переноса не было, – 0011 (добавить 1100), независимо от знака слагаемых и знака суммы.
BCD-код с избытком 6 для одного из слагаемых
При сложении чисел с одинаковыми знаками неважно, к какому из слагаемых добавить 0110. Причем это равносильно добавлению 0011 к каждому слагаемому.
При суммировании чисел в коде с избытком 6 коррекция может понадобиться только в случае, когда сумма меньше 16. В остальных случаях (сумма больше 16) возникает перенос, удаляющий из тетрады 6 лишних единиц, и коррекции результата не требуется.
Результат должен быть без избытка.
Пример :
A = 169 0.0111 1100 1111
B = 378 0.0011 0111 1000
A + B = 547 0.1001 0100 0111
0110 .
0.0101 0100 0111
Суммирование чисел с разными знаками производится в BCD-коде, но в сущности тоже с избытком 6.
Yandex.RTB R-A-252273-3
- Арифметические и логические основы вычислительной техники учебное пособие
- Введение
- Арифметические основы вычислительной техники Системы счисления
- Двоичная система счисления
- Восьмеричная система счисления
- Шестнадцатеричная система счисления
- Критерии выбора системы счисления
- Перевод чисел из одной системы счисления в другую
- Перевод целых чисел
- Перевод правильных дробей
- Перевод чисел из одной системы счисления в другую, основание которой кратно степени 2
- Кодирование чисел
- Переполнение разрядной сетки
- Модифицированные коды
- Машинные формы представления чисел
- Погрешность выполнения арифметических операций
- Округление
- Нормализация чисел
- Последовательное и параллельное сложение чисел
- Сложение чисел с плавающей запятой
- Машинные методы умножения чисел в прямых кодах
- Ускорение операции умножения
- Умножение с хранением переносов
- Умножение на два разряда множителя одновременно
- Умножение на четыре разряда одновременно
- Умножение в дополнительных кодах
- Умножение на два разряда множителя в дополнительных кодах
- Матричные методы умножения
- Машинные методы деления
- Деление чисел в прямых кодах
- Деление чисел в дополнительных кодах
- Методы ускорения деления
- Двоично-десятичные коды
- Суммирование чисел с одинаковыми знаками в bcd-коде
- Суммирование чисел с разными знаками в bcd-коде
- Система счисления в остаточных классах (сок)
- Представление отрицательных чисел в сок
- Контроль работы цифрового автомата
- Некоторые понятия теории кодирования
- Обнаружение и исправление одиночных ошибок путем использования дополнительных разрядов
- Коды Хемминга
- Логические основы вычислительной техники Двоичные переменные и булевы функции
- Способы задания булевых функций
- Основные понятия алгебры логики
- Основные законы алгебры логики
- Формы представления функций алгебры логики
- Системы функций алгебры логики
- Минимизация фал
- Метод Квайна
- Метод Блейка - Порецкого
- Метод минимизирующих карт Карно (Вейча)
- Б в Рис. 19. Таблица истинности и карта Карно
- Минимизация конъюнктивных нормальных форм
- Минимизация не полностью определенных фал
- Кубическое задание функций алгебры логики
- Метод Квайна −Мак-Класки
- Алгоритм извлечения (Рота)
- Нахождение множества простых импликант
- Определение l-экстремалей
- Минимизация фал методом преобразования логических выражений
- Применение правил и законов алгебры логики к синтезу некоторых цифровых устройств Синтез одноразрядного полного комбинационного сумматора
- Синтез одноразрядного комбинационного полусумматора
- Синтез одноразрядного полного комбинационного сумматора на двух полусумматорах
- Синтез одноразрядного комбинационного вычитателя
- Объединенная схема одноразрядного комбинационного сумматора-вычитателя
- Триггер со счетным входом как полный одноразрядный сумматор
- Введение в теорию конечных автоматов Основные понятия теории автоматов
- Способы задания автоматов
- Структурный автомат
- Память автомата
- Канонический метод структурного синтеза автоматов
- Принцип микропрограммного управления
- Граф-схема алгоритма
- Пример синтеза мпа по гса
- Синтез мпа Мили по гса
- Синхронизация автоматов
- Литература
- 220013, Минск, п.Бровки, 6