Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора_ИВСИТ.docx
Скачиваний:
85
Добавлен:
21.12.2018
Размер:
7.66 Mб
Скачать

10.Дополнительный код. Выполнение алгебраического сложения чисел.

Для представления знаковых целых чисел используются три способа:

1) прямой код; 2) обратный код; 3) дополнительный код.

Все три способа используют самый левый (старший) разряд битового набора длины k для кодирования знака числа: знак “плюс” кодируется нулем, а “минус” — единицей. Остальные k-1 разрядов (называемые мантиссой или цифровой частью) спользуются для представления абсолютной величины числа.

Отриц. число в ДК в знак 1, в числовых заменить 0->1 1->0 кроме последнего.

ДК:

2.N1>0, N2<0; |N1|>|N2|

N3дк = N1 + 2 - N2 = 2 + (N1 - N2) = 2 + N3

Пример: N1 = +0,01112 = 7/1610

N2 = - 0,01012 = -5/16

N1дк = 0,0111

N2дк = 1,1011

N3ок = 10,0010

N3 = 0,0010 = 2/16

4.N1<0, N2<0

N3дк = 2 - N1 + 2 - N2 = 2 + (N1 - N2) + 2 = 2 - N3 + 2 = - N3дк + 2

Пример: N1 = - 0,01112 = -7/1610

N2 = - 0,01012 = -5/16

N1ок = 1,1001

N2ок = 1,1011

N3ок = 11,0100

N3 = - 0,1100 = -12/16

Выводы:

  1. При суммировании операндов в ДК результат тоже получается в ДК.

  2. Суммирование операндов в ДК занимает меньше времени.

Поэтому ДК – основной код во всех современных ВМ, а также потому, что -0 представляется в нем как 0. Хранение операндов в памяти происходит тоже в ДК.

11. Сложение двоичных чисел, представленных в форме с плавающей запятой.

Алгебраическое сложение кодированных чисел

Для выполнения алгебраического кодирования ПК не используется, в нем разделяются операции над знаками и над модулями чисел.

ОК: N1+N2=N3

1. N1>0, N2<0; | N1|>| N2|, N1 +N2 =N3>0

N1ОК+ N2ОК= N1+10- N2-10-n=10+( N1 -N1)-10-n=10+N3-10-n

N1=+0,1011=+ N1OK=0,1011

N2=-0,0110=- N2OK=1,1001

N3OK=10,0100 N3OK=0,0101=+

2. N1>0, N2<0; | N1|<| N2|, N1 +N2 =N3<0

N1ОК+ N2ОК= N1+10- N2-10-n=10+( N1 -N1)-10-n=10-N3-10-n=-N3OK

N1=+0,0111=+ N1OK=0,0111

N2=-0,1101=- N2OK=1,0010

N3OK=1,1001 N3OK=-0,0110=-

3. N1<0, N2<0;

N1ОК+ N2ОК=10- N1-10-n +10-N2-10-n=10+(-N1 -N1)-10-n+10-10n=10-N3-10-n

N1=-0,0100=- N1OK=1,1011

N2=-0,1001=- N2OK=1,0110

N3OK=11,0001 N3OK=1,0011-N3=-0,1101=-

При выполнении сложения в ОК результат получается тоже в ОК. При выполнении переноса из знакового разряда, эта 1 по цепи циклического переноса добавляется к младшему разряду.

ДК:

1. N1>0, N2<0; | N1|>| N2|, N1 +N2 =N3>0

N1ДК+ N2ДК= N1+10- N2 =10+( N1 -N1) =10+N3

N1=+0,1011=+ NK=0,1011

N2=-0,1000=- NK=1,1000

NK=10,0011 N3=+

2. N1>0, N2<0; | N1|<| N2|, N1 +N2 =N3<0

N1ДК+ N2ДК= N1+10- N2=10+( N1 -N1)=10-N3=NK

N1=+0,0011=+ NK=0,0011

N2=-0,1100=- NK=1,0100

NK=1,0111 NK=-0,1001=-

3. N1<0, N2<0; N1+N2=N3<0

N1ДК+ N2ДК=10-N1+10-N2 =10+(-N1 -N1)-10=10-N3ДК

N1=-0,0111=- NK=1,1001

N2=-0,1000=- NK=1,1000

NK=11,0001 N3=-0,1111=-

При выполнении сложения в ДК, результат тоже получается в ДК. При выполнении переноса из знакового разряда, эта 1 теряется. Время выполнения по отношению с ОК меньше, т.к. отсутствует цикл переноса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]