Пример. Число –127

Код модуля числа 0,1111111

Обратный код числа 1,0000000. Представление числа в обратном коде показано на рис. 2.11

Рис. 2.11

3. Дополнительный код получается образованием обратного кода с последующим прибавлением единицы к его младшему разряду.

Пример. Представление числа –1 в дополнительном коде показано на рис. 2.12

 

 

Рис. 2.12

Представление числа –127 в дополнительном коде показано на рис. 2.13

 

 

Рис. 2.13

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

Использование различных способов изображения отрицательных чисел в ЦВМ обуславливает целый ряд особенностей выполнения операции алгебраического сложения двоичных чисел.

При сложении обратных кодов чисел Х1 и Х2 имеют место четыре основных и два особых случая.

1. Х1>0 и X2>0. При суммировании складываются все разряды, включая разряд знака.

Пример

Десятичная запись Двоичные коды

+  

(5)

+

(9)

(14)

2. Х1>0, X2<0 и |X2|>X1

Пример

Десятичная запись Двоичные коды

+  

+

-10

-7

 

При переводе обратного кода (обр) в прямой (пр) получим:

1 1111000обр=1 0000111пр= -710

 

3. Х1>0, X2<0 и |X2|<X1

Пример

Десятичная запись Двоичные коды

+  
0
  +1

+

-3

 

Полученный непосредственно сразу неверный результат (число 6) исправляется путем переноса единицы из знакового разряда в младший разряд суммы. При этом получается правильный результат – число 710

4. Х1<0 и X2<0

Пример.

Десятичная запись Двоичные коды

+  
1
  +1

-3

+

-7

-10

 

 

Полученный непосредственно сразу неверный результат (обратный код числа –1110) исправляется путем переноса единицы из знакового разряда в младший разряд суммы.

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

1. Х1>0 , X2>0 и S=X1+X2 2n-1, где n – количество разрядов формата числа (для однобайтового формата n=8, 2n-1=27=128)

Пример

Десятичная запись Двоичные коды

+  

+

97

162

 

Здесь имеет место переполнение разрядной сетки: семи разрядов цифровой части недостаточно для размещения восьмиразрядной суммы (16210=101000102), поэтому старший разряд суммы оказывается в знаковом разряде и знак суммы оказывается несовпадающим со знаком слагаемых, что является признаком переполнения разрядной сетки.

2 Х1<0, X2<0 и S=|X1|+|X2| 2n-1

Пример

Десятичная запись Двоичные коды

+  
0
  +1

-63

+

-95

-158

 

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

При сложении дополнительных кодов чисел Х1 и Х2 имеют место те же четыре основных и два особых случая.

1. Х1>0 и X2>0. Аналогично случаю 1 для обратных кодов.

2. Х1>0, X2<0 и |X2|>X1.

Пример.

Десятичная запись Двоичные коды

+  

-

10

-7

 

При переводе дополнительного (доп) кода в прямой (пр) получим:

3. Х1>0, X2<0 и |X2|<Х1

Пример

Десятичная запись Двоичные коды

 

+  
0
   

-

3

7

 

 

Единица переноса из знакового разряда отбрасывается.

 

4. Х1<0, X2<0

Пример

Дополнительный код числа -310
Десятичная запись Двоичные коды

+  
1
   

-3

+

Дополнительный код числа -710
-7

Дополнительный код числа -1010
-10

 

 

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

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








Дата добавления: 2015-07-14; просмотров: 500;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.014 сек.