Свойства представления чисел в дополнительном коде — КиберПедия 

Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Свойства представления чисел в дополнительном коде

2017-05-14 798
Свойства представления чисел в дополнительном коде 0.00 из 5.00 0 оценок
Заказать работу

Диапазон представления на n-разрядной сетке от -2n-1 до 2n-1 – 1 Например: для n= 8 от -2-7 до 27 -1 от -128 до 127
Количество кодовых комбинаций, соответствующих числу 0 Одна
Отрицание 1. Инвертировать значение в каждом разряде представления исходного числа, включая знаковый разряд, т.е. установить занчение 1 в тех разрядах, где ранее был 0, а значение 0 – в тех разрядах, где ранее было значение 1. (Эту операцию иногда называют поразрядным дополнением, а ее результат инверсным кодом). 2. Сложить образовавшееся число с числом 0…001 по правилам сложения чисел без знака. Иногда эту операцию называют вычислением дополнения числа в дополнительном коде. +18 = 00010010 (дополнительный код) Поразрядное дополнение = 11101101 + 1
 
 


11101110 = -18

Проверим правило, гласящее, что отрицание отрицания равно исходному числу

-18 = 11101110 (дополнительный код)

Поразрядное дополнение = 00010001

+ 1

 
 


00010010 = +18

Примечание. Операция отрицания числа представленного в прямом коде выполняется очень просто – нужно инвертировать значение знакового разряда.

Расширение разрядности представления Добавить дополнительные разряды слева и заполнить их значением, равным значению в знаковом разряде.   +18 00010010 дополнительный код, 8 разрядов +18 00000000 00010010 дополнительный код, 16 разрядов   -18 11101110 дополнительный код, 8 разрядов -18 11111111 11101110 дополнительный код, 16 разрядов
  Примечание. Для чисел представленных в прямом коде расширение сетки выполняется очень просто: нужно перенести знаковый разряд в крайний левый бит нового слова, а остальные биты дополнить 0.   +18 00010010 прямой код, 8 разрядов +18 00000000 00010010 прямой код, 16 разрядов   -18 10010010 прямой код, 8 разрядов -18 10000000 00010010 прямой код, 16 разрядов
Определение переполнения при сложении Если оба слагаемых имеют одинаковые знаки (оба положительны или оба отрицательны), то переполнение возможно только в том случае, когда знак суммы оказывается отличным от знаков слагаемых: Знаковые разряды: + 0 +1 01 1 0
         

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

Таблица 2. Варианты двоичного 4-разрядного представления целых чисел

Десятичное представление Прямой код Дополнительный код
+7    
+6    
+5    
+4    
+3    
+2    
+1    
+0    
-0   -
-1    
-2    
-3    
-4    
-5    
-6    
-7    
-8 -  

Чтобы получить представление двоичного отрицательно числа в дополнительном коде нужно над модулем числа выполнить операцию отрицания.

Представить число 2710 как восьмиразрядное двоичное положительное и отрицательное число в дополнительном коде.

 

-27        
  -13      
    -6    
      -3  
         
         

2710 = 110112

В двоичном представлении исходное число имеет 5 значащих цифр. Для восьмиразрядного представления нужно слева добавить три 0.

 

+27 =                
    Операция отрицания
  +                
                   
-27                  

 

Проверим результат, используя правило - отрицание отрицания равно исходному числу.

 

-27                  
    Операция отрицания
  +                
                   
+27                  

 

Для преобразования между десятичным представление и двоичным представлением отрицательного числа в дополнительном коде можно использовать диаграмму веса разрядов. Рассмотри пример для восьмиразрядных чисел. Для получения кода заданного числа нужно набрать из чисел, соответствующих целой степени 2, положительное число, которое в сумме с числом (-128) даст необходимое число. В графах чисел, входящих в сумму нужно поставить 1, а остальные графы в этой строке заполнить 0.

Таблица 3.

Числа 27 26 25 24 23 22 21 20 Результаты вычислений
-128              
-123                 -128 + 4 + 1 = -123
-87                 -128 + 64 + 16 + 4 + 1 = -87
-10                 -128 + 64 + 32 + 16 + 4 + 2 = - 10
-27                 -128 + 64 + 32 + 4 + 1 = -27

ПРАКТИЧЕСКАЯ ЧАСТЬ.

Выполнить задание:

представить заданные числа в прямом коде;

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

 

«ОПЕРАЦИИ СЛОЖЕНИЯ И ВЫЧИТАНИЯ НАД ЧИСЛАМИ В ДОПОЛНИТЕЛЬНОМ КОДЕ»

ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Выполнение операции рассмотрим на примерах. Если результат операции должен быть положительным, получается код положительного числа в дополнительном коде, а если отрицательным – код отрицательного числа. При выполнении операции могут возникать переносы в старший разряд и переполнение разрядной сетки. При переносе старший (самый левый бит) игнорируется. При переполнении необходимо представить оба слагаемых в расширенной разрядной сетке и выполнить операцию сложения в новой разрядной сетке. Выполняем действия над числами в десятичной и двоичной системах счисления. Если результата – отрицательное число, для проверки нужно выполнить над ним операцию отрицания; если получим противоположное ему положительное число, значит сложение выполнено правильно. При выполнении операции сложения слагаемые записываются в заданном представлении чисел: если слагаемое положительное – оно записывается как положительное число в дополнительном коде; если слагаемое отрицательное число, оно записывается как отрицательное число в дополнительном коде. Правильность записи чисел в нижеприведенных примерах можно проверить используя таблицу 2 «Варианты двоичного 4-разрядного представления целых чисел».

Сложение. Обозначим слагаемые как S1 и S2

S1 - 7     +1                      
S2 +5                            
  - 2             =-2              
Проверка:                          
операция                          
отрицания   +0                      
                               
                =+2              
                               
S1 - 4     +1                      
S2 +4                            
      1         = 0 перенос    
S1 +3     +0                      
S2 +4                            
  +7   1         =+7      
                               
S1 - 4     +1                      
S2 - 1                            
  - 5   1         =-5   перенос      
Проверка:                          
операция                          
отрицания   +0                      
                               
                =+5              
                               
S1 +5     +0                      
S2 +4                            
  +9           =+9   переполнение    

Выполним расширение разрядной сетки до 8 разрядов:

 

                 
                 
                =+9

 

S1 - 7     +1                      
S2 - 6                            
  -13             =-13   переполнение  

 

Выполним расширение разрядной сетки до 8 разрядов:

 

                       
                       
1                 =-13 Перенос
 
Выполним проверку:
                   
                   
+0                  
                   
                =+13  

 

Вычитание. Обозначим уменьшаемое как М, а вычитаемое как S

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

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

 

М +2     1) =   = -7 =        
S +7                 +7          
  - 5                            
                               
                    -7          
        2) М +            
      +0                        
                               
              = -5              
Проверка:                          
операция                          
отрицания                          
                               
              = +5              

 

ПРАКТИЧЕСКАЯ ЧАСТЬ.

1. Выполнить задание операции сложения и вычитания над числами в дополнительном коде.

2. Отметить все возникающие переносы и переполнения. В случае переполнения выполнить расширение разрядной сетки

3. Выполнить проверку результатов

 

 


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

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.029 с.