- •Лекция № 16.
- •Содержание
- •Системы счисления.
- •Двоичная арифметика.
- •Основные аксиомы и законы булевой алгебры.
- •Набор логических функций двух переменных
- •Минтермы, макстермы и значения функции у10
- •Основные аксиомы и законы булевой алгебры
- •Выполнение логических и арифметических операций.
- •Принципы схемотехники цифровых интегральных схем.
Двоичная арифметика.
При выполнении арифметических операций над двоичными числами необходимо учитывать знак числа. С этой целью вводится дополнительный знаковый разряд z, который обычно располагается перед числовыми разрядами. Для положительных чисел значение знакового разряда z = 0, для отрицательных чисел z = 1.
Как
и в десятичной системе счисления,
операция сложения двух положительных
n-разрядных
чисел
и
выполняется поразрядно, начиная с
младшего. Разрядные числа
и
суммируются по модулю 2 с учетом переноса
из предыдущего (младшего) разряда
в соответствии с таблицей 10.1. Сумма
,
если количество слагаемых со значением
1 нечетное, а перенос в последующий
разряд
= 1, если количество таких слагаемых не
меньше двух.
Таблица 10.1 Пример 10.1.
-
Таблица истинности
одноразрядного сумматора
а5 ао
А2 = 0 0 0 1 1 1 = А10 = 7
+
В2 = 0 1 0 0 1 1 = В10 = 19
__________
b5 bо
S2 = 0 1 1 0 1 0 = S10 = 26
_ _ _
Р2 Р1 Ро
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
1
0
1
0
0
1
0
0
0
1
0
1
1
1
Пример 10.2
Операцию
вычитания в цифровой технике реализуют
с помощью сложения. Для этого вычитаемое,
включая его знаковый разряд, представляют
в обратном коде. Если в результате
суммирования в знаковом разряде
образуется перенос, то эта единица
прибавляется к младшему разряду суммы.
Такое прибавление единицы называют
циклическим
переносом.
Знак результата определяется получившимся
значением знакового разряда
.
В общем случае для выполнения операций сложения и вычитания удобно представлять отрицательные числа в обратном коде, а положительные – в прямом. Вычитание заменяется сложением с переводом вычитаемого в обратный код, если это число положительное, и в прямой код, если число отрицательное. Если результат операции получается отрицательный ( = 1), то он представлен в обратном коде, если положительным ( = 0) – в прямом коде.
Пример 10.3.
Недостатком использования обратного кода является образование циклического переноса, который приводит к повторению операции сложения, что значительно увеличивает время выполнения действий.
При использовании дополнительного кода действия сложения и вычитания выполняются так же, как с использованием обратного кода, но проще и быстрее, так как отпадает необходимость в циклическом переносе из знакового разряда. Однако преобразование числа в дополнительный код технически реализуется сложнее, чем в обратный.
Умножение двоичных многоразрядных чисел в принципе не отличается от умножения десятичных чисел. Так как частное произведение многоразрядного числа на 1 равно этому числу, а умножение на 0 дает нули во всех разрядах, действие умножения сводится, таким образом, к операциям сдвига и сложения частных произведений. Очевидно, что при этом можно опустить промежуточный результат умножения на нуль и просто сдвинуть влево следующее промежуточное произведение (пример 10.4).
Двоичное деление тоже аналогично десятичному, но благодаря меньшему числу цифр в системе счисления операция получается более простой. Это видно из примера 10.5 (деление 1011012 = 4510 на 10012 = 910).
Деление сводится к операциям сдвига и вычитания.
Рассмотренные выше арифметические операции относятся к операциям над двоичными числами, представленными в форме с фиксированной запятой, когда число отображается в виде единого целого, каждый разряд его имеет неизменный вес. На практике, с целью расширения диапазона чисел, используют форму с плавающей запятой. Здесь число состоит из двух частей: мантиссы т, содержащей значение цифры числа, и порядка р, показывающего степень, в которую надо возвести основание счисления q, чтобы полученное при этом число, умноженное на мантиссу, давало истинное значение представляемого числа:
(10.3)
Арифметические действия над числами с плавающей запятой реализуются несколько сложнее, чем над числами с фиксированной запятой, так как здесь необходимо выполнять операции как над мантиссами, так и над порядком.
Рассмотрим третий вопрос лекции.
