Арифметические основы цифровой техники - часть 5

 

  Главная      Учебники - Производство     

 

поиск по сайту           правообладателям

 

 

 

 

 

 

 

 

 

содержание   ..  3  4  5  6   ..

 

 

Арифметические основы цифровой техники - часть 5

 

 

 

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

Пример 3.6. 
Дано х = 23, у = –54, х+у = –31. Суммирование двух чисел, одно из которых 

отрицательно и больше по модулю чем положительное. 

 

 
Пример 3.7. 
Дано х = –23, у = –31, х+у = –54, (суммирование отрицательных чисел  х 

<

 0, 

у 

<

 0, х+у 

<

 0). Замена слагаемых их обратными или дополнительными кодами. 

 
        Обратные коды                                     Дополнительные коды 
  [х]

обр

      =   1 1 0 1 0 0 0                                  [х]

доп

      =    1 1 0 1 0 0 1 

 
В  примерах 3.6 и 3.7 при  переходе  от  дополнительного  кода  к  прямому 

использовалось  вычитание  единицы  и  замена  всех  нулей  единицами  и 

 

наоборот. 

Часто 

такой 

переход 

осуществляется 

образованием 

дополнительного  кода  от  дополнительного.  Можно  легко  проверить,  что 
результат при этом не искажается. 

Если  сумма  превышает  установленный  модуль  числа  (здесь 63), то 

возникает  переполнение  разрядной  сетки.  При  этом  результат  оказывается 
искаженным. 

Пример 3.8. 
Дано х = 46, у = 32, х+у = 78 > 63. 

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

является возникновение единицы переноса в знаковый разряд при отсутствии 
переноса из знакового разряда. 

Пример 3.9. 
Дано х =  –46, у =  –32, х+у =  –78. 

 

Признаком  переполнения  разрядной  сетки  для  отрицательных  чисел 

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

Эти  признаки  переполнения  используются  в  ЭВМ  для  обнаружения 

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

 
Подведем  итоги  рассмотренных  примеров.  При  сложении  образуют 

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

При  вычитании  знак  вычитаемого  изменяется на противоположный,  а 

далее выполняются описанные выше действия. 

При  переполнении результат  как  при  сложении,  так  и при  вычитании 

искажается. В ЭВМ предусматривается определенная реакция на это событие – 
прерывание. 

Чаще  всего  в  ЭВМ  используются  дополнительные  коды.  В  них  нуль 

представляется 

только 

одним 

способом 

(при 

обратных 

кодах 

«положительный» и «отрицательный» нуль изображаются различно).  Кроме  
того,  при    дополнительных  кодах    нет  циклического  сложения, что ускоряет 
операцию. 

 
3.3.  Сложение чисел, представленных в форме с плавающей точкой 
Предварительно отметим, что при выполнении всех операций над числами 

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

Первой  операцией,  которая  производится  при  сложении  двух  чисел, 

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

 

 

Знак 

Порядок 

Знак мантиссы 

Мантисса 

1-е слагаемое 0 

011 0 

11110010 

2-е слагаемое 0 

001 

11010011 

 

Шаг  1.  Выравнивание  порядка  второго  слагаемого  (денормализация)  с 

помощью сдвига его мантиссы вправо на два разряда, подсуммирование двух 
единиц к разрядам порядка. Тогда второе слагаемое запишется в виде: 

0 011 1 00110100. 

 

Отметим,  что  в  результате  денормализации  младшие  разряды  оказались 

потерянными. 

Шаг 2.  Перевод  мантисс  в  один  из  кодов  (например,  обратный)  и  их 

сложение. 

 

Полученное  в  результате  сложений  число  является  положительным  и 

нормализованным (в первом значащем разряде мантиссы стоит единица). В таком 
виде оно может быть использовано для дальнейших вычислений. 

 
3.4.  Умножение чисел в ЭВМ 
При    умножении  двух  n-разрядных  чисел,  представленных  в  форме  с 

фиксированной  точкой,  получается  2n-разрядное  произведение.  Так  как  длина 
разрядной сетки машины ограничена конечным числом разрядов, то полученный 
результат  всегда  будет  иметь  некоторую  погрешность.  Кроме  того,  необходимо 
помнить,  что  при  умножении  целых  чисел  размерность  сомножителей  должна 
обеспечивать размерность результата, не превышающего разрядную сетку ЭВМ. В 
противном  случае  возникает  переполнение.  Процесс  умножения,  как  известно, 
может быть представлен сложением со сдвигом. Если сдвиг осуществлять в правую 
сторону,  то  младшие  разряды  произведения  будут  теряться  и  произведение,  как 
правило,  будет  получаться  с  недостатком.  При  многократном  выполнении 
умножения  систематическая  ошибка  будет  накапливаться,  что  исказит 
окончательный результат. 

Одним из приемов уменьшения этой ошибки является округление результата. 

Оно  заключается  в  том,  что  после  умножения  к  произведению  подсуммируется 
единица,  если  дополнительный    (n+1)-й  разряд  равен  единице,  и  ничего  не 
добавляется,  если  он  равен  нулю.  Таким  образом,  округление  производится 
попеременно в большую или меньшую сторону. 

При  умножении  знак  произведения  можно  определить  как  результат 

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

Пусть множимое M

1

 и множитель М

2

 представлены многочленами 

 

.

2

...

2

2

,

2

...

2

2

2

2

1

1

2

2

2

1

1

1

n

n

n

n

b

b

b

M

a

a

a

M

+

+

+

=

+

+

+

=

 

 
В представленных многочленах а

i

 и b

i

 – коэффициенты, равны нулю и 

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

 

 

 

 

 

 

 

 

содержание   ..  3  4  5  6   ..