- •Министерство образования и науки украины
- •Содержание
- •Требования по оформлению контрольной работы
- •1 Вопросы для проверки уровня знаний основ компьютерной арифметики
- •2 Перечень технической литературы
- •3Cистемы счисления компьютерной арифметики
- •3.1 Представление чисел в позиционных системах счисления
- •3.2 Выбор системы счисления компьютера
- •4 Методы перевода чисел из одной позиционной системы счисления в другую
- •4.1 Методы перевода целых чисел
- •4.1.1 Метод подбора коэффициентов
- •4.1.2 Метод перевода делением на основание новой системы
- •4.1.3 Метод перевода чисел делением на основание в положительной степени
- •4.2 Перевод правильных дробей умножением на основание системы
- •4.3 Перевод неправильных дробей
- •4.4 Перевод чисел из 16-и и 8-ричных систем в двоичную и обратно
- •5 Форматы представления чисел в компьютере
- •5.1 Представления чисел с фиксированной запятой
- •5.2 Представление чисел в формате с плавающей запятой
- •5.3 Погрешности представления чисел
- •5.3.1 Абсолютная погрешность представления чисел
- •5.3.2 Относительная погрешность представления числа
- •6 Бинарная арифметика
- •6 1 Формальные правила двоичной арифметики
- •6.2 Представление отрицательных чисел
- •7 Коды бинарных чисел
- •7.1 Обратный код числа
- •7.1.1 Переход от обратного кода к прямому
- •7.2 Дополнительный код числа
- •7.3 Сложение чисел, представленных в форме с фиксированной запятой, на двоичном сумматоре прямого кода
- •8 Алгебраическое сложение бинарных чисел
- •8.1Cложение чисел на двоичном сумматоре дополнительного кода
- •8.2 Сложение чисел на сумматоре обратного кода
- •9 Модифицированные бинарные коды
- •9.2 Модифицированное сложение чисел в формате с плавающей точкой
- •10 Сложение чисел при разных значениях порядков
- •10.1 Алгоритм операции сложения в формате с плавающей точкой
- •11 Умножение двоичных чисел
- •11.1 Методы умножения бинарных чисел
- •11.2 Умножение чисел с фиксированной запятой на дспк
- •11.3 Умножение чисел с плавающей запятой
- •12 Умножение чисел на дсдк
- •12.1 Умножение чисел на дсдк при положительном множителе
- •12.2 Умножение чисел на дсдк при отрицательном множителе
- •13. Деление бинарных чисел
- •13.1 Метод деления бинарных чисел
- •13.1.1 Общий алгоритм деления чисел с восстановлением остатка
- •13.2 Деление чисел с фиксированной запятой с восстановлением остатка
- •14 Деление чисел с фиксированной запятой без восстановления остатка
- •14.1 Алгоритм деления без восстановления остатка
- •14.2 Деление чисел с плавающей запятой
- •15 Контрольное задание
8.2 Сложение чисел на сумматоре обратного кода
Двоичным сумматором обратного кода (ДСОК) называется сумматор, оперирующий с числами в обратном коде.
Структурная схема ДСОК приведена на рисунке 8.2.
Рисунок 8.2.-Структурная схема ДСОК
ДСОК имеет: n-сумматоров (по количеству разрядов мантиссы); сумматор знаковых разрядов; ai, bi – цифровые разряды числа в машинном коде; переносы из старших разрядов мантиссы в знаковый разряд; наконец, обратный перенос из старшего знакового разряда в младший разряд цифровой части числа.
Чтобы сформировать правила сложения чисел в обратных кодах на ДСОК рассмотрим следующую теорему.
Теорема: Если результат суммы обратных кодов чисел отрицательный, то результат представлен в обратном коде. Если результат суммы дополнительных кодов чисел положительный, то результат представлен в прямом коде.
При доказательстве этой теоремы предполагаем, что числа представлены в форме с фиксированной запятой, стоящей перед старшим цифровым разрядом.
Рассмотрим следующие случаи.
Случай 1. А>0, В>0, А+В<1 т.е. оба числа положительные. Тогда Аобр. + Вобр = [A + B]обр = А + В, т.е. сложение производится
в прямых кодах.
Случай 2. A<0, B>0, |A|>B,
здесь Аобр = q - q-n + A, Вобр = В, тогда Аобр + Вобр = q - q-n + A + B = [A + B]обр, т.е. результат отрицательный и в обратном коде, надо возвращаться к Спр путем инверсии разрядов числа.
Пример:
А = – 0.1011 – 11 В = 0.0111 +7 Сумматор ДСОК.
Случай 3. A<0, B>0, A<B, здесь Аобр = q - q-n + A. Тогда Аобр + Вобр = q - q-n + A + B. Так как сумма (А + В) положительная, то правая часть этого выражения становится больше q, что вызывает появление единицы переноса из знакового разряда в младший разряд числа (величина переноса при этом, равна q - q-n), тогда Аобр + Вобр = А+В. Результат положительный. Это и есть Спр.
Пример:
А = -0.0101 (-5) В = 0,0111 (+7) Сумматор ДОСК
Случай 4. А<0, В<О, |А + В|<1,
здесь Ao6p = q - q-n + A, Вобр= q - q-n + B. Тогда Аобр + Вобр = q - q-n+A+ q - q-n +B. Здесь появляется единица переноса, что равносильно изъятию из суммы q - q-n, т.е. Аобр+ Вобр= q - q-n + A + B=[A + B]o6p.
Пример:
А = -0,0101 ; В = -0,1000 Найти сумму используя ДСОК.
Складываем машинные изображения.
9 Модифицированные бинарные коды
9.1 Переполнение разрядной сетки
Мы не раз наблюдали, как при сложении чисел с одинаковыми знаками, представленных в форме с фиксированной запятой, может возникнуть переполнение разрядной сетки. При этом, чтобы избежать искажения результата сложения, автомат должен фиксировать переполнение и производить правый сдвиг числа.
9.1.1 Переполнение при сложении прямых кодов
Признаком переполнения разрядной сетки сумматора прямого кода является появление единицы переноса из старшего разряда цифровой части числа.
Пример.
А=0,1010; В=0,1101.
Получен искаженный результат, из-за потери переноса.
9.1.2 Переполнение при сложении дополнительных кодов
Признаком переполнения разрядной сетки сумматора дополнительного кода при сложении положительных чисел является отрицательный знак результата, а при сложении отрицательных чисел - положительный знак результата.
Пример: А=0,1011, В=0,1010
9.1.3 Переполнение при сложении в обратных кодах
Признаком переполнения разрядной сетки сумматора обратного кода является знак результата, противоположный знакам операндов.
Пример:
1).
А=0,0111, В=0,1101
Знак числа искажен.
Для устранения потерь от переноса единицы переполнения, в составе цифрового автомата должны быть предусмотрены дополнительные средства, позволяющие фиксировать и анализировать переполнения по их признакам с целью устранения искажения результата.
Чтобы фиксировать переполнения разрядной сетки в ДСПК, ДСОК, ДСДК, вводится вспомогательный разряд в знаковую часть изображения числа, который называют разрядом переполнения числа. Такое представление числа называется модифицированным (см. рисунок 8.1)
В машинном представлении чисел, представленных в модифицированном коде, используется (n+2) разряда: из них 2 знаковых, запятая опускается, устанавливается постоянный коэффициент формата Кф.
Пример: 1) А=0,1011,В=0,1010.
Здесь признаком переполнения является 1 в знаковом разряде. По этому признаку производится сдвиг числа вправо с одновременным увеличением коэффициента формата Кф на +1 и восстановлением (по значению Sg1) знака 00 числа, проверяется нормализация числа (наличие 1 после знака числа).
2) А=-0,1011, В=-0,1001. Преобразуем в машинную форму: Ампр.=11.1011, Вмпр.=11.1001. Так как оба числа отрицательны и операция сложения выполняется на сумматоре дополнительного кода, то в сумматор числа поступают в дополнительном коде.
Анализ разрядов знака результата (10) показал, необходимость восстановления его (11), сдвигая число вправо на один разряд, с одновременным увеличением коэффициента формата Кф на +1. Результат отрицательный, и поэтому, представлен в дополнительном коде. Поэтому, число преобразуется в прямой код через обратный с добавлением в младший разряд +1.