Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Алгебраическое сложение чисел, представленных в форме с фиксированной запятой




Сложение двоичных чисел

АРИФМЕТИЧЕСКИЕ ДЕЙСТВИЯ С ДВОИЧНЫМИ ЧИСЛАМИ

 

Арифметические операции можно выполнять с двоичными числами, представленными в прямом, обратном и дополнительном коде. Если операнды представлены в прямом коде и имеют одинаковые знаки, то над ними при алгебраическом сложении естественно выполняется процедура сложения. Если же операнды имеют разные знаки - процедура вычитания. Как уже отмечалось, для упрощения аппаратных средств компьютера процедура вычитания заменяется сложением благодаря тому, что отрицательный операнд представляется в обратном или дополнительном коде.

 

 

Структурные схемы двоичных сумматоров, предназначенных для выполнения алгераического сложения чисел представленных в обратном и дополнительном кодах приведены на рисунке 4.1 в) и б) соответственно, а на рисунке 4.1 а) - для арифметического сложения чисел, представленных в прямом коде. На этих рисунках символами Sg обозначаются значения знаковых битов операндов и результата.

 

а)

a1 SM c1 a2 SM c2 an SM cn Sga SM

b1 b2 bn

P0 P1 P2 Pn-1

 

1 2 n

б)

a1 SM c1 a2 SM c2 an SM cn Sga SM

b1 b2 bn Sgb

P0 P1 P2 Pn-1 Pn

 

1 2 n

в)

a1 SM c1 a2 SM c2 an SM cn Sga SM

b1 b2 bn Sgb

P0 P1 P2 Pn-1 Pn

 

1 2 n

 

Рис. 4.1

 

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

Если оба операнда представлены в прямом коде и имеют одинаковые знаки, то над такими операндами выполняется процедура сложения и результату присваивается знак исходных операндов.

Рассмотрим примеры:

 

1) 210 + 410 = 610 2) -210 - 410 = -610

0. 0010 а) 1. 1110 б) 1. 1101

+ 0. 0100 + 1. 1100 + 1. 1011

0. 0110 = 610 1 1. 1010 = -610 1 1. 1000

+1 коррекция

1. 1001 = -610

 

Во втором примере оба отрицательных слагаемых представлены либо в дополнительном коде (а), либо в обратном коде (б). В первом случае результат получен в дополнительном коде, а во втором, после коррекции, - в обратном.

Если же операнды имеют разные знаки, то должна выполняться процедура вычитания. Но, как уже отмечалось, процедуру вычитания заменяют процедурой сложения, отрицательный операнд (вычитаемое) представляют в обратном или дополнительном коде, а положительный операнд - в прямом коде.

Например:

 

1) 410 - 210 = 210

а) 0. 0100 б) 0. 0100

+ 1. 1110 + 1. 1101

1 0. 0010 = 210 1 0. 0001

+1 коррекция

0. 0010 = 210

2) 410 - 410 = 0

а) 0. 0100 б) 0. 0100

+ 1. 1100 + 1. 1011

1 0. 0000 = 010 1. 1111

+1 коррекция

1 0. 0000 = 010

3) 210 - 410 = -210

а) 0. 0010 б) 0. 0010

+ 1. 1100 + 1. 1011

1. 1110 = -210 1. 1101 = -210 коррекции нет.

 

В примерах 1а) и 2а) единица, выходящая за разрядную сетку, не учитывается ("теряется").

Как видно из примеров процедура алгебраического сложения с дополнительными кодами проще, чем с обратными кодами, т.к. в последнем случае при возникновении единицы переноса за пределы разрядной сетки, выделенной для числа в формате с фиксированной запятой, приходится корректировать результат с помощью дополнительной процедуры прибавления единицы к результату. Нулевой результат получается или в прямом коде или же в обратном, что также требует коррекции результата. Поэтому в настоящее время на практике для представления отрицательных операндов используется в основном дополнительный код.

Таким образом, перед выполнением самой процедуры алгебраического сложения в дополнительном коде нужно проанализировать знаки слагаемых. Если они разные, то выполняется алгебраическое сложение (фактически вычитание) без проверки на переполнение результата, т.к. его в этом случае просто не может быть. Но контролируется чтобы в результате не появился запрещенный отрицательный ноль. Если же у исходных операндов знаки одинаковы, то такой же знак предварительно присваивается результату и выполняется само сложение. Если знак окончательного результата не совпадает с предварительно присвоенным знаком, то это является признаком переполнения и следовательно, неправильного результата.

Еще раз подчеркнем, что результат алгебраического сложения операндов представленных в обратном и дополнительном кодах получается также в обратном и дополнительном коде соответственно.

 

 




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 746; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.