Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Пример. Число –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

Пример

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

   
+  
   
   
   

-

3

7

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

4. Х1<0, X2<0

Пример

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

   
+  
   
   
   

-3

+

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

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

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

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





Дата публикования: 2015-11-01; Прочитано: 365 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...