Сделай Сам Свою Работу на 5

Алгоритм сложения в коде 8-4-2-1





 

1. Проверить знаки слагаемых – отрицательные преобразовать в обратный код, инвертируя тетрады и прибавляя потетрадно код 1010. Единицы переноса между тетрадами отбрасывать.

2. Сложить двоично-десятичные числа по правилам двоичной арифметики.

3. Выполнить коррекцию результата, прибавив код 0110 к «неправильным» тетрадам, а также к тетрадам, из которых сформировались единицы переноса. Единицы переноса между тетрадами учитывать.

4. Проверить знак результата – отрицательный перевести в прямой код, инвертируя тетрады и прибавляя потетрадно код 1010. Единицы переноса между тетрадами отбрасывать.

Пример.

Сложить десятичные числа А=-85,1 и В=39,9 в коде 8-4-2-1. Масштабируем операнды М=102 и кодируем цифры чисел в ПК.

Апк = 1,1000.0101.0001.

Впк = 0,0011.1001.1001.

Отрицательное число А переводим в ОК:

инверсия 1,0111.1010.1110. Единицы переноса

коррекция 1010.1010.1010. отбрасывать!

Аок =1,0001.0100.1000.

Выполняем сложение чисел в ОК:

Аок =1,0001.0100.1000.

Вок =0,0011.1001.1001.

1,0100.1110.0001.

коррекция 0110.0110. Единицы переноса

(А+В)ОК =1,0101.0100.0111. учитывать!

Сумма отрицательная – переводим в ПК:

инверсия 1,1010.1011.1000.Единицы переноса

коррекция .1010.1010.1010. отбрасывать!



(А+В)ПК= 1,0100.0101.0010.

Умножаем на масштаб и переводим в десятичную систему счисления: (А+В)= -0100.0101,0010 = -45,2.

 

Код с избытком три 8-4-2-1+3

 

Это модификация кода с естественными весами, в котором обеспечено выполнение свойства самодополняемости.

Прямые коды десятичных цифр получают прибавлением тройки к двоичным эквивалентам цифр. Обратные коды получают простым инвертированием тетрад прямого кода. Действительно:

15–(Ак+3) = =12-Ак= (9-Ак)+3.

Однако обретение свойства самодополняемости привело к утрате свойства однозначности веса каждого разряда.

При сложении в коде 8-4-2-1+3 могут возникнуть следующие два случая, требующие введения коррекции.

Таблица 3.

10сс ПК ОК

1. Sk 9 – нет переноса из данной тетрады:

Sk = (Ak +3)+(Bk +3)+Ck =(Ak+Bk+Ck)+6.

Сформировался избыток 6, а нужен избыток 3, следовательно, необходима коррекция кодом:

-310 = - 00112 = 1101ДК

2. Sk 10 – есть перенос из данной тетрады:

Sk = (Ak +3)+(Bk +3)+Ck-16=(Ak+Bk+Ck)-10.



Естественно формируется перенос из данной тетрады, а избытка 3 нет, следовательно, необходима коррекция кодом: +310 = 00112

 

Алгоритм сложения в коде 8-4-2-1+3

 

1. Проверить знаки слагаемых – отрицательные перевести в ОК путём инвертирования тетрад.

2. Сложить двоично-десятичные числа по правилам двоичной арифметики.

3. Выполнить коррекцию результата:

- прибавить код 0011 к тетрадам суммы, из которых формировались единицы переноса;

- прибавить код 1101 к тетрадам суммы, из которых не формировались единицы переноса;

При коррекции единицы переноса между тетрадами отбрасывать.

4. Проверить знак результата – отрицательный перевести в ПК путём инвертирования тетрад.

Пример.

Сложить десятичные числа А =-85,7 и В =-39,4 в коде 8-4-2-1+3.

Масштабируем операнды М=103, чтобы избежать ПРС при сложении чисел одинакового знака, и кодируем цифры чисел в ПК:

АПК=1,0011.1011.1000.1010.

ВПК=1,0011.0110.1100.0111.

Переводим отрицательные числа в ОК и складываем:

АОК=1,1100.0100.0111.0101.

ВОК=1,1100.1001.0011.1000.

11,1000.1101.1010.1101.

Возникла единица переноса из знакового разряда, которую следует прибавить к младшей тетраде. Кроме того, для выполнения коррекции необходимо зафиксировать наличие или отсутствие переносов между тетрадами (указаны в виде верхних индексов в скобках):

1,(1)1000.(0)1101.(0)1010.(0)1110.

0011. 1101. 1101. 1101. коррекция

(А+В)ОК=1, 1011. 1010. 0111. 1011. единицы переноса

отбрасывать!

Переводим результат в ПК путём инвертирования тетрад:

(А+В)ПК=1,0100.0101.1000.0100.=-125,110

 

 

 

Код Айкена 2-4-2-1

Таблица 4.

10сс ПК ОК

Этот код можно рассматривать как код с естественными весами для первых пяти цифр 0,1,2,3,4,а для остальных пяти цифр это код с избытком 6.



Код обладает свойством самодополняемости (сумма весов двоичных разрядов равна 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.

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.