СОДЕРЖАНИЕ
Введение
Литература
Введение
В процессе написания реферата нам предстоит ознакомиться с :
Популярность двоичной системы счисления во многом объясняется простотой правил двоичной арифметики.
Сложение | Вычитание | Умножение |
0+0=0 | 0-0=0 | 0х0=0 |
0+1=1 | 0-1=1 (заем) 1 | 0х1=0 |
1+0=1 | 1-0=1 | 1х0=0 |
1+1=0 1 (перенос в ст. разр) | 1-1=0 | 1х1=1 |
Основной операцией в ЭВМ является сложение. По способу ее выполнения арифметические устройства могут быть параллельного, последовательного, параллельно-последовательного действия. Последовательное суммирование должно выполняться на основании следующего равенства:
ai+bi+Пі-1= Si+Пі
При вычислении суммы двух чисел возможны два варианта: слагаемые имеют одинаковые знаки и слагаемые имеют различные знаки. В результате этого алгоритмы получения суммы для каждого из них различны.
Для операндов с одинаковыми знаками:
1. Сложить два числа.
2. Сумме присвоить знак одного из слагаемых.
Алгоритм получения алгебраической суммы:
1. Сравнить знаки слагаемых, и если они одинаковы, то выполнить сложение по первому алгоритму.
2. Если знаки слагаемых разные, то сравнить слагаемые по абсолютной величине.
3. Вычесть из большего меньшее.
4. Результату присвоить знак большего слагаемого.
Из этого следует, что первый алгоритм проще второго. Следовательно, желательно преобразовать отрицательные числа таким образом, чтобы операцию вычитания заменить операцией сложения, т.е. S=A+(-B).
Для того, чтобы решить эту проблему, необходимо вводить специальные коды: прямой, обратный, дополнительный.
Способ построения этих кодов определяется функциями кодирования, которые должны обеспечить:
1. Запись алгебраического знака числа.
2. Представление отрицательных чисел при помощи вспомогательных, положительных, которые отличаются по изображению от положительных исходных чисел, т.е. области изображений положительных и отрицательных чисел не должны пересекаться.
3. Полную идентичность алгоритмов выполнения операций над числами различных знаков, и следовательно, полную идентичность необходимого при этом оборудования.
Прямым кодом отрицательного числа называется его изображение в естественной форме записи, у которого в знаковом разряде ставится 1. Прямой код положительного двоичного числа совпадает с его обычным изображением в естественной форме, так как знак кодируется нулем.
Согласно определению, функция кодирования чисел в прямом коде правильных дробей вида: А=азн a-1 a-2... а-nзапишется следующим образом:
Величина А будет определяться в прямом коде следующим выражением:
при этом знаковому разряду не приписывается никакого веса. Очевидно, что диапазон изменения машинных изображений для прямого кода двоичной дроби лежит в пределах:
.В геометрической интерпретации область положительных чисел будет совпадать с областью их изображений, а для отрицательных чисел эти области будут отличаться.
В прямом коде нуль имеет два значения: положительное 0,000..0 и отрицательное 1,000...0. Обычно в ЭВМ используется положительный нуль, но в процессе вычислений может возникнуть и его отрицательное изображение. Оба изображения полностью эквивалентны и применение любого из них не приводит к ошибке.
Пример записи числа в прямом коде:
А=+0,101011 Апр= 0,101011;
В=-0,110011 Впр=1,110011.
Правила сложения чисел в прямом коде не отличаются от обычных правил сложения, т.е. если оба слагаемых имеют одинаковые знаки, то их числовые разряды складываются, а сумме присваивается знак одного из них. Если слагаемые имеют разные знаки, то из числовых разрядов большего по абсолютной величине числа вычитается меньшее, а сумме приписывается знак большего из слагаемых. При этом числовые разряды кода обрабатываются отдельно от знаковых, так как последние не имеют веса.
Рассмотрим возможные 4 случая получения суммы чисел в прямом коде.
1) А›0, В›0, С›0.
А=+0,101001 В=+0,000101
Апр=0,101001 Впр=0,000101 Спр=А+В
+0,101001
0,000101
0,101110
2) А›0, В‹0, С›0.
А=+0,101001 В=-0,000101
Апр=0,101001 Впр=1,000101 Спр=А-|В|
-0,101001
1,000101
0,100100
3) А‹0, В›0, С‹0.
А=-0,101001 В=+0,000101
Апр=1,101001 Впр=0,000101 Спр=1+(|А|-|В|)
-0,101001
0,000101
0,100100 Спр=1+0,100100=1,100100
4) А‹0, В‹0, С‹0.
А=-0,101001 В=-0,000101
Апр=1,101001 Впр=1,000101 Спр=1+|А|+|В|
+0,101001
0,000101
0,101110 Спр=1+ 0,101110=1,101110
Таким образом, в прямом коде знаковый разряд и цифровую часть нельзя рассматривать как единое целое. Кроме того, необходимо кроме сумматора иметь и вычитатель. В результате этого прямой код не применяется для выполнения операции алгебраического сложения, но применяется для выполнения операций умножения и деления.
В дополнительном коде операция вычитания заменяется операцией алгебраического сложения. При этом знаковый разряд и цифровая часть рассматриваются как единое целое.
Рассмотрим особенности преобразования в дополнительный код. Отрицательное число заменяется некоторым вспомогательным положительным числом, причем :
При этом для дробных отрицательных чисел всегда имеет место: |А|+|[A]Д |=1
Геометрическая интерпретация дополнительного кода правильной дроби при р=2 представлена на рис. 1.1.
Рисунок 1.1- Геометрическая интерпретация дополнительного кода
С ростом абсолютной величины дополнительный код положительного числа возрастает, а отрицательного - убывает.
Ввиду того, что область чисел и область изображений равны по длине модуля р=2, между числами и их изображениями имеет место однозначное соответствие. При этом область положительных чисел совпадает с областью изображений. Поэтому изображения положительных двоичных дробей не отличаются от их обычной двоичной записи, а для изображения правильной отрицательной дроби к ней нужно прибавить модуль 2, по которому сравнивается число с его изображением, т.е. получить дополнение до двух.
Дополнительный код положительного числа совпадает с его представлением в прямом коде.
Правило преобразования отрицательного числа из прямого кода в дополнительный:
Для преобразования прямого кода отрицательного числа в дополнительный необходимо все значащие разряды заменить на противоположные (проинвертировать) и прибавить 1 к младшему разряду. Знаковый разряд остается без изменения.
[A]пр=0,10110100; [A]дк=0,10110100;
[Â]пр=1,10111101; [В]дк=1,01000011.
В дополнительном коде операция вычитания заменяется операцией алгебраического сложения. При этом знаковый разряд и цифровая часть числа рассматриваются как единое целое, в результате чего с отрицательными числами машина оперирует как с неправильными дробями. Правильный знак суммы получается автоматически в процессе сложения содержимого знаковых разрядов операндов и единицы переноса из цифровой части, если она есть.
Рассмотрим все возможные варианты сложения чисел в дополнительном коде:
1) А›0, В›0, С›0.
А=+0,101101 В=+0,000111
Апр=0,101101 Впр=0,000111
Адк=0,101101 ВДК=0,000111 Сдк=Адк+Вдк
+0,101101
0,000111
0,110100
2) А›0, В‹0, С›0.
А=+0,101101 В=-0,000111
Апр=0,101101 Впр=1,000111
Адк=0,101101 ВДК=1,111001 Сдк=Адк+Вдк
+ 0,101101
1,111001
1¬0,100110 (1 переноса из знакового разряда суммы не учитывается)
3) А‹0, В›0, С‹0.
А=-0,101101 В=+0,000111
Апр=1,101101 Впр=0,000111
Адк=1,010011 ВДК=0,000111 Сдк=Адк+Вдк
+ 1,010011
0,000111
1,011010 (Спр= 1,100110)
4) А‹0, В‹0, С‹0.
А=-0,101101 В=-0,000111
Апр=1,101101 Впр=1,000111
Адк=1,010011 ВДК=1,111001 Сдк=Адк+Вдк