Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm: Общие вопросы > Зачем два кода


Автор: VitalikOmsk 25.10.2005, 09:02
А теперь внимание вопрос: зачем необходимо два кода обратный и дополнительный если их функции одинаковы.
И если можно пример.

Автор: oleg1973 26.10.2005, 18:53
чтото я вопроса не понял )

Автор: S.A.P. 26.10.2005, 18:56
VitalikOmsk дополнительный для флоатов, обратный для целых отрицательных. Где же у них функции одинаковые?

Автор: VitalikOmsk 27.10.2005, 10:31
Это мой препод говорит что у них функции одинаковые

Автор: Janus 16.11.2005, 19:48
На самом деле, хоть и функции их действительно одинаковы - для сложения отрицательных чисел, выбор кода существенно влияет на конфигурацию АЛУ.

Вот например, сложим числа (первый разряд - знак):

Код

0 011001 = 25
1 010001 = - 17

обратный код:

 0 011001
 1 101110
 - ------
10 000111
|       ^
|  (+)  | - получили циклический перенос, т.е.
+-------+   нужно выполнять сложение еще раз!

0 000111
0 000001
- ------
0 001000 = 8

Дополнительный код:

 0 011001
 1 101111
 - ------
10 001000
^
|
+- этот разряд просто выбрасываем!

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

Однако, все дело в том, что использование дополнительного кода усложняет устройство управления и АЛУ. Получение дополнительного кода само по себе осуществляется путем сложения, тогда как получение обратного кода лугко организовать - дополнительного оборудования не нужно вообще.

Автор: Akina 16.11.2005, 21:22
Цитата(VitalikOmsk @ 27.10.2005, 11:31)
Это мой препод говорит что у них функции одинаковые

Это назначение функциональное у них одинаково.

Автор: Janus 18.11.2005, 19:41
Кстати, в АЛУ компьютера все операции выполняются только над числами с фиксированной запятой. Другое дело, что числа с плавающей запятой предварительно приводятся к таковым.

В компьютере используется только один код - или обратный, или дополнительный - иметь два разных АЛУ было бы слишком расточительно.

Автор: VitalikOmsk 2.12.2005, 14:22
Мысли понял попробую втереть это все в препода спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)