- •Двоично-десятичная арифметика
- •Введение
- •Операция алгебраического сложения в двоично-десятичных кодах Код с естественными весами 8-4-2-1
- •Код Айкена 2-4-2-1
- •Алгоритм сложения в коде 2-4-2-1
- •1,1000.(!)1001.(!)0001.0101. – Сумма
- •Сравнение двоично-десятичных кодов
- •Умножение двоично-десятичных чисел
- •Табличный метод умножения
- •Старорусский метод удвоения-деления пополам
- •Десятично-двоичный метод умножения
Код Айкена 2-4-2-1
Таблица 4.
10сс |
ПК |
ОК |
0 |
0000 |
1111 |
1 |
0001 |
1110 |
2 |
0010 |
1101 |
3 |
0011 |
1100 |
4 |
0100 |
1011 |
5 |
1011 |
0100 |
6 |
1100 |
0011 |
7 |
1101 |
0010 |
8 |
1110 |
0001 |
9 |
1111 |
0000 |
Код обладает свойством самодополняемости (сумма весов двоичных разрядов равна 9), так что обратный код любой тетрады можно получить инвертированием. Единственный недостаток этого кода в том, что старший разряд двоичной тетрады имеет искусственный вес.
Из особенностей формирования десятичных цифр вытекают следующие правила введения коррекции при алгебраическом сложении. Предварительно рассмотрим возможные варианты формирования тетрад суммы.
1. Обе исходные тетрады меньше 5, и единица переноса из данной тетрады не формируется. Здесь возможны два случая:
а) тетрада суммы тоже меньше 5, результат будет получен верный, значит коррекция не нужна;
б) тетрада суммы больше или равна 5, значит, для таких цифр надо искусственно сформировать избыток 6, следовательно, нужна коррекция кодом +610=01102.
2. Одна исходная тетрада меньше 5, а другая больше или равна 5. В этом случае возможны два варианта:
а) если нет переноса из тетрады суммы:
SK= AK+(BK+6)+CK – результат верный, коррекции нет.
б) если есть перенос из тетрады суммы в соседнюю старшую тетраду: SK= AK+(BK+6)+CK-16; SK= AK+BK++CK-10 -результат верный, коррекции нет.
3. Обе исходных тетрады больше или равны 5,значит, есть единица переноса из тетрады суммы в соседнюю старшую тетраду:
SK=(AK+6)+(BK+6)+CK-16=(АК+ВК+СК-10)+6
Здесь возможны два следующих случая:
а) если тетрада суммы больше или равна 5 – результат верный, коррекции нет;
б) если тетрада суммы меньше 5, не нужен избыток 6, значит, необходима коррекция кодом -610=-01102=1010ДК.
Таким образом, при алгебраическом сложении в коде 2-4-2-1 коррекция необходима в двух случаях:
1)если тетрады слагаемых меньше 5, тетрада суммы больше 4, необходима коррекция кодом +6=0110;
2)если тетрады слагаемых больше или равны 5, есть единица переноса из тетрады суммы, а сама тетрада суммы меньше 5, нужна коррекция кодом -6=1010.
Алгоритм сложения в коде 2-4-2-1
1. Проверить знаки слагаемых – отрицательные перевести в ОК путём инвертирования всех тетрад.
2. Сложить двоично-десятичные числа по правилам двоичной арифметики.
3. Выполнить коррекцию суммы в соответствии с изложенными выше правилами. При коррекции единицы переноса между тетрадами отбрасываются.
4. Проверить знак результата – отрицательный перевести в ПК путём инвертирования тетрад.
Пример.
Сложить десятичные числа А=-63,58 и В=46,74 в коде 2-4-2-1. Масштабируем операнды М=102 и кодируем цифры чисел в ПК:
АПК = 1,1100.0011.1011.1110.
ВПК = 0,0100.1100.1101.0100.
Переводим отрицательное число в ОК и складываем:
АОК = 1,0011. 1100. 0100.0001.
ВОК = 0,0100. 1100. 1101.0100.