Арифметика в дополнительном коде




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

Пример

Выполнить сложение и вычитание в дополнительном коде разрядности п = 8: а) 18(10) + 7(10); б) 35(10)−7(10)в) 18(10)−35(10)г) −35(10)−18(10)

а) Число 18(10)= 10010(2), при разрядности n = 8, представляется дополнительным кодом 00010010. Число 7(10)=111(2), представляется дополнительным кодом 00000111. Выполняя двоичное сложение кодов, получим дополнительный код результата 00011001. Прочитаем результат: 11001(2)= 25 (10).

б) Число 35(10)=100011(2) представляется дополнительным кодом 00100011, число −7(10)= −111(2) представляется дополнительным кодом 11111001. Выполняя двоичное сложение кодов, получим результат 00011100, в дополнительном коде. Перенос из знакового бита не учитывается. Результат положительный. Дополнительный код совпадает с прямым. Прочитаем результат: 11100(2)= 28(10).

в) Число 18(10)= 10010(2)представляется дополнительным кодом 00010010, число 35(10)=100011(2) - кодом 00100011, а противоположное ему −35(10) − кодом 11011101. Результат сложения: 11101111, противоположное число имеет код: 00010001. Читаем противоположное: 10001(2)= 17(10); а результат − 17(10).

г) Дополнительный код −35(10): 11011101. Дополнительный код −18(10): 11101110. Результат сложения: 11001011, код обратного числа: 00110101. Обратное число: 110101(2) = 53(10),а результат − 53(10).

Кодирование числа с плавающей запятой

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

Рациональное представление предназначено для записи в память ЭВМ чисел, заданных простой дробью, числитель и знаменатель хранятся отдельно в целочисленном представлении.

Примеры

1. Представить число −1,2(10) в рациональном представлении: 1−4 биты - числитель (в дополнительном коде, целое), 5−8 биты − знаменатель (без знака, целое).

Представим число в виде простой неправильной дроби и переведем его в двоичную форму записи:

Числитель −110(2) в дополнительном коде разрядности n = 4 запишется комбинацией 1010, знаменатель 101(2) – комбинацией 0101. Кодовая комбинация рационального представления имеет вид: 10100101.

Ответ: 10100101.

2. Прочитать число, записанное в рациональном представлении: 1−4 биты - числитель (в дополнительном коде, целое), 5−8 биты − знаменатель (без знака, целое), кодом 10011010.

Прочитав дополнительный код целого числителя 1001, получим: −111(2). Код целого знаменателя 1010 при чтении дает число: 1010(2).

Ответ: -0,7(10) .

Представление числа с плавающей запятой применяется для расширения диапазона представимых чисел. Представление с плавающей запятой построено на основе показательной формы записи двоичного числа А:

где m - мантисса числа, являющаяся числом с фиксированной запятой со знаком, удовлетворяющим условию нормировки.

r - порядок, являющийся целым числом со знаком. Условие нормировки делает соответствие естественной и показательной форм записи числа однозначным. Мантисса m несет информацию о разрядах числа, а порядок r − о положении запятой в записи числа

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

Примеры

1. Представить число с плавающей запятой: 1−11 биты − мантисса со знаком (в дополнительном коде, с фиксированной запятой, нормированная), 12−16 биты − порядок со знаком (целое в дополнительном коде), а) 1101,1101(2); б) 0,00011101(2); в) −11111110111(2); г) −0,0(0111)(2).

Описанное в условии задачи представление с плавающей запятой порождает кодовые комбинации разрядности n = 16, при этом в старших разрядах располагается мантисса с собственной разрядностью nm = 11, а в младших разрядах − порядок с разрядностью nr = 5.

На первом этапе выполняют переход от естественной формы записи числа к показательной. Условие нормировки означает, что запятую в записи числа следует перенести так, чтобы получить 0 в разряде целых и 1 в старшем разряде дробной части. Перемещение запятой компенсируют подбором порядка. Мантисса в данном формате хранит 10 разрядов числа; если в записи нормированной мантиссы их больше, необходимо выполнить округление. Округление выполняется путем устранения разрядов с наименьшим весом.

На втором этапе, после записи числа в показательной форме, с мантиссой и порядком работают раздельно. Готовые коды мантиссы и порядка объединяют. Длинные комбинации кода, для облегчения практической работы с ними, разбивают на триады или тетрады.

 

a) m:             ПК=ДК
  r:       ПК=ДК
                   
б) m:             ПК=ДК
  r:       ПК        
          ОК        
          ДК        
                   
в) m:             ПК  
                ОК  
                ДК  
  r:       ПК        
                   
г) m:             ПК  
                ОК  
                ДК  
  r:       ПК        
          ОК        
          ДК        

 

Рис 4.

 

а) Представим число в показательной форме:

.

 

Для выполнения условия нормировки потребовалось сместить запятую в записи числа влево на 4 разряда, что и отражено в порядке показательной формы. Мантисса m и порядок r записанные, в дополнительном коде представлены на рис. 4, а.

Ответ: 0110 1110 1000 0100.

б) Представим число в показательной форме:

 

 

Для выполнения условия нормировки потребовалось сместить запятую в записи числа вправо на 3 разряда, что отражено в порядке r. Мантисса m и порядок r записанные в дополнительном коде представлены на рис. 4, б. Порядок r < 0, поэтому требуется перевод из прямого кода в дополнительный.

Ответ: 0111 0100 0001 1101.

в) Показательная форма заданного числа имеет вид:

Выполнение условия нормировки требует сместить запятую в записи числа влево на 11 разрядов. В мантиссе оказалось 11 разрядов. Округление выполнено в младшем разряде, при чтении этот разряд будет нулевым. Перевод мантиссы m и порядка r в дополнительный код представлен на рис. 4, в.

Ответ: 1000 0000 1010 1011.

г) Округлим число так, чтобы осталось 10 разрядов, которые можно записать в мантиссу, затем представим округленное число в показательной форме:

 

Выполнение условия нормировки требует сместить запятую в записи числа вправо на 2 разряда. Перевод мантиссы т и порядка r в дополнительный код представлен на рис. 4, г.

Ответ: 1000 1000 1011 1110.

2. Для формата, описанного в предыдущем примере, прочитать число с плавающей запятой а) 0111 0101 0000 0110; б) 1000 1010 0001 0101.

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

а) m:             ДК=ПК
  r:       ДК=ПК
                 
б) m:             ДК
                −ПК
  r:       ДК
          −ПК

 

Рис 5.

а) Разбиение кода на группы, соответствующие мантиссе и порядку и подготовка к чтению этих групп представлены на рис.5, а. Показательная и естественная формы числа имеют вид:

Ответ: 111010,1(2).

б) Разбиение кода на группы и подготовка к их чтению представлены на рис. 5, б. Показательная и естественная формы числа имеют вид:

 

Ответ: -0,000000111011(2).


 



Поделиться:




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

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


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