- •Цифровые и микропроцессорные устройства
- •Часть 1 Основы цифровой техники
- •27 Мая 2010 г., протокол № 9
- •Системы счисления. Основные понятия. Выбор системы счисления для цифровых устройств
- •Перевод чисел из одной позиционной системы счисления в другую
- •Представление двоичных чисел в формах с фиксированной и плавающей точкой
- •Способы кодирования двоичных чисел
- •Арифметические операции над двоичными числами с фиксированной точкой
- •Особенности арифметических операций над двоичными числами с плавающей точкой
- •Сложение двоично-десятичных чисел
- •Символьные коды
- •Структурные единицы и форматы цифровых данных
- •Понятие о логических функциях, логических элементах и логических устройствах
- •Классификация логических устройств
- •Способы задания логических функций
- •Элементарные логические функции одного аргумента
- •Элементарные логические функции двух аргументов
- •Основные законы и тождества алгебры логики
- •Понятие базиса и минимального базиса
- •Преобразование логических функций из основного базиса в неосновные
- •Общие сведения об элементной базе цифровой техники
- •Классификация цифровых интегральных схем
- •Обозначения цифровых интегральных схем
- •Основные статические и динамические параметры логических элементов
- •Типы выходных каскадов цифровых элементов
- •Логический выход
- •Выход с тремя состояниями
- •Выход с открытым коллектором (стоком)
- •Построение узлов цифровых устройств на стандартных микросхемах
- •Схемотехника входных цепей элементов кмоп и режимы временно разомкнутых входов
- •Этапы синтеза комбинационных цифровых устройств
- •Канонические формы представления логических функций
- •Исходные положения к минимизации
- •Этапы минимизации
- •Табличный метод минимизации
- •Литература
- •Содержание
- •Цифровые и микропроцессорные устройства
- •Часть 1 Основы цифровой техники
- •220114, Минск, ф.Скорины, 8/2
Способы кодирования двоичных чисел
Кодирование двоичных чисел в цифровых устройствах необходимо для упрощения операции сложения отрицательных чисел, т. е. вычитания. Двоичные числа, представленные в естественной и нормальной формах, кодируются в цифровых устройствах с помощью специальных машинных кодов: прямого, обратного и дополнительного.
Прямой код является простейшим машинным кодом и получается при кодировании в числе только знака. Прямой код положительного числа совпадает с его изображением в естественной форме. Прямой код отрицательного числа совпадает с его изображением в естественной форме, за исключением знакового разряда, в который ставится единица.
Пример 1.
= + 0,11010;
Пример 2.
= – 0,11010;
Знак числа веса не имеет и отделяется от цифр числа точкой. Прямой код используется для хранения чисел в памяти, при вводе-выводе информации, а также при выполнении операций умножения и деления. Недостатком прямого кода являются разные правила счета для положительных и отрицательных чисел. Поэтому в цифровых устройствах вычитание (сложение чисел с разными знаками) заменяют операцией сложения чисел в обратном или дополнительном кодах, пропорциональных исходным числам.
Дополнительный код отрицательного двоичного числа находится как дополнения модуля этого числа до граничного числа, представляемого в данной разрядной сетке. Дополнительный код для двоичных чисел, меньших единицы, образуется по формуле:
(4)
где
–
граничное число,
Пример 3.
= + 0,1101;
Пример 4.
= – 0,1101;
Из формулы (4) и примеров видно, что изображение положительных чисел в дополнительном коде совпадает с изображением их в прямом коде. Для представления отрицательного двоичного числа в дополнительном коде необходимо в знаковом разряде поставить единицу, произвести замену цифр исходного числа на обратные и к полученному коду прибавить единицу младшего разряда.
Обратное преобразование, т.е. получение числа из дополнительного кода выполняется по тому же правилу, что и получение дополнительного кода.
Пример 5.
X = – 0,0101.
Дополнительный код получил более широкое применение, так как обеспечивает более высокое быстродействие.
Обратный код отрицательного двоичного числа находится как дополнения модуля до двух без единицы младшего разряда. Обратный код для двоичных чисел, меньших единицы, образуется по формуле:
(5)
Пример 6.
= + 0,1101;
Пример 7. = – 0,1101;
Из формулы и примеров видно, что изображение положительного числа в обратном коде совпадает с его изображением в прямом коде. Обратный код отрицательного числа образуется заменой цифр исходного числа на обратные и постановкой единицы в знаковый разряд.
Переход от обратного кода к прямому осуществляется по тому же правилу, что и от прямого к обратному.
Пример 8.
X = – 0,0100.
Арифметические операции над двоичными числами с фиксированной точкой
Основной операцией, которая используется в цифровых устройствах при различных вычислениях, является операция алгебраического сложения (сложение положительных и отрицательных чисел). Вычитание, умножение и деление также выполняются с помощью операции сложения и некоторых других действий.
Сложение чисел в цифровых устройствах производится так же, как и при ручном счете, т.е. путем поразрядного суммирования чисел, начиная с младших разрядов. Сложение двоичных чисел выполняется в соответствии с таблицей:
0 + 0 = 0; |
0 + 1 = 1; |
1 + 0 = 1; |
1 + 1 = 10. |
Пример 1. Выполним сложение двух положительных двоичных чисел, представленных в естественной форме:
Из примера следует, что начиная со второго разряда сложение производится с учетом переноса из соседнего младшего разряда.
Вычитание двоичных чисел выполняется в соответствии с таблицей:
0 – 0 = 0; |
1 – 0 = 1; |
1 – 1 = 0; |
10 – 1 = 1. |
Пример 2. Выполним вычитание, т.е. сложение двух двоичных чисел с разными знаками, представленных в естественной форме:
Так как | | > | |, то выполняется вычитание из и результату присваивается знак плюс.
Из примера следует, что при вычитании происходит заем из соседнего старшего разряда. Следовательно, при сложении и вычитании двоичных чисел в естественной форме используются различные правила, поэтому вычитание заменяется сложением в машинных кодах.
При алгебраическом сложении двоичных чисел в обратном и дополнительном кодах используются следующие правила:
а) знаковые разряды суммируются так же, как и значащие разряды числа;
б) единица переноса
из знакового разряда при сложении в
дополнительном коде отбрасывается, а
в обратном коде для получения правильного
результата эта единица прибавляется к
младшему разряду суммы, компенсируя
величину
.
Такой перенос называется циклическим;
в) если в знаковом разряде суммы получился нуль, то сумма положительна и для перехода к естественной форме числа обратное преобразование не требуется. Если же в знаковом разряде суммы получилась единица, то сумма отрицательна и требуется обратное преобразование.
П
ример
3. Выполним
суммирование двоичных чисел
= + 0,11001
и
= – 0,01011
в обратном коде:
Результат получился
положительным, т.е.
Пример 4. Выполним суммирование тех же двух двоичных чисел = + 0,11001 и = – 0,01011 в дополнительном коде:
Результат получился положительным и совпал с результатами суммирования в обратном коде и вычитания в естественной форме.
Пример 5. Поменяем знаки чисел и и выполним суммирование в дополнительном коде. Результат получится отрицательным и потребуется обратное преобразование.
При сложении чисел одного знака может произойти переполнение разрядной сетки, что приведет к искажению результата. На практике для выявления переполнения разрядной сетки применяют модифицированные машинные коды, в которых два знаковых разряда. Для положительных чисел в знаковых разрядах записывается 00, для отрицательных – 11. Появление комбинаций 01 или 10 в знаковых разрядах свидетельствует о переполнении разрядной сетки, т. е. является сигналом ошибки. Например, двоичное число X = – 0,1101 в модифицированном дополнительном коде будет записано следующим образом:
= 11.0011.
Пример 6. Выполним суммирование двух десятичных чисел = + 0,450 и = – 0,575 в двоичной СС с точностью пять знаков после запятой в дополнительном модифицированном коде и сравним результаты суммирования в двоичной и десятичной СС.
Т
ак
как |
| > |
|,
то в естественной форме следует выполнить
вычитание числа
из числа
и результату присвоить знак минус.
Результаты суммирования в естественной форме и дополнительном модифицированном коде совпадают.
Умножение двоичных чисел в цифровых устройствах производится по тем же правилам, что умножение десятичных чисел и делится на два этапа.
На первом этапе определяется знак произведения путем суммирования по модулю 2 знаковых разрядов сомножителей. Если знаковые разряды сомножителей одинаковы и равны 0 или 1, то сумма по модулю 2 равна 0 (произведение положительно), если же знаковые разряды сомножителей не совпадают, то эта сумма будет равна 1 (произведение отрицательно).
На втором этапе определяется абсолютное значение произведения путем перемножения этих чисел без учета знака (кодовое умножение). Для этого необходимо вычислить частичные произведения, затем сдвинуть их и сложить между собой.
Пример
1. Умножим
целые положительные двоичные числа
= 1101
и
= 1011.
Умножение выполним, начиная с младшего
разряда множителя.
Суммирование частичных произведений осуществляется в несколько этапов, поскольку арифметическое устройство может выполнять операцию сложения сразу только с двумя числами.
Если умножение выполняется, начиная со старшего разряда множителя, то частичные произведения следует сдвигать вправо.
