Цифровая электроника | Страница 3 из 32

Цифровая электроника

Цифровая электроника

Числовые коды, представление отрицательных чисел.

Кодом называется любое обозначение, отличное от общепринятого. Общепринято, например, положительные числа отмечать знаком «+» (или вообще не указывать знак), а отрицательные числа отмечать знаком «-». Числа разного знака необходимо уметь изображать состояниями элементов цифровой электроники. Для изображения знака числа вводится дополнительный знаковый разряд, причем состоянию «0» этого разряда соответствует знак «+», а состоянию «1» — знак «-».Такое изображение чисел со знаком называется прямым кодом [X]пр числа Х. Поскольку разрядность цифровых вычислительных устройств обычно кратна одному байту, то под знаковый разряд отводится крайний левый бит в старшем байте. Таким образом, если для представления чисел в цифровом устройстве предусмотрен один байт (8 бит), то знаковым будет восьмой разряд байта, а оставшиеся семь будут отведены для значащих разрядов числа, что сделает возможным оперировать с целыми числами в диапазоне от –127 до +127. Если же разрядность цифрового устройства 2 байта (16 бит), то знаковым будет шестнадцатый разряд, а значащими окажутся разряды с первого по пятнадцатый и т.д. Таким образом, прямой код целого числа образуется по правилу: если число Xположительно, то Xпр=0, X1, X2, … Xn; если число X отрицательно, то Xпр=1, X1, X2, … Xn, где n=8, 16 и т.д.

Обратный код числа образуется инвертированием всех разрядов прямого кода числа, кроме знакового. Операция инвертирования заключается в поразрядной замене нулей на единицы и единиц на нули. Таким образом, если число Xположительно, то Xобр=0, Цифровая электроника, Цифровая электроника, … Цифровая электроника; если число X отрицательно, то Xобр=1, Цифровая электроника, Цифровая электроника, … Цифровая электроника, где n= 8, 16 и т.д.

Как известно, правила сложения чисел отличаются от правил вычитания. Чтобы выполнить эти операции необходимо иметь два самостоятельных устройства — сумматор и вычитатель. Но оказалось, что можно обойтись только одним устройством — сумматором, если изображать числа, участвующие в операции, в дополнительных кодах. Дополнительный код положительного числа совпадает с прямым кодом этого числа.

Дополнительный код отрицательного числа получается следующим образом:

записывают обратный код исходного числа;

прибавляют единицу к младшему разряду.

Дополнительный код числа будем обозначать как Xдоп. При этом, если в результате вычитания в знаковом разряде получается единица, то результат отрицательный и представлен в дополнительном коде, а если нуль – то положительный и представлен в прямом коде. В таблице 1.2 приводится пример кодов некоторых положительных и отрицательных десятичных чисел.

Таблица 1.2.

Десятичное представление

Двоичное представление

Представление в прямом коде [X]пр

Представление в обратном коде Xобр

Представление в дополнительном коде Xдоп

23

10111

00010111

01101000

00010111

-1

-1

10000001

11111110

11111111

-17

-10001

10010001

11101110

11101111

-70

-1000110

11000110

10111001

10111010

В процессе выполнения арифметических операций необходимо следить за тем, чтобы промежуточные и конечные результаты не выходили бы за пределы отведенной разрядной сетки. Для этих целей используют так называемый модифицированный дополнительный код Цифровая электроника. Согласно этому коду под знаковый отводится не один, а два разряда. Правила перевода в модифицированный дополнительный код такие же, как и в обычный дополнительный код. Отличие состоит в том, что в модифицированном дополнительном коде положительному числу в знаковых разрядах соответствуют два нуля и отрицательному числу – две единицы. При этом, если в результате некоторой арифметической операции в знаковых разрядах произошло чередование нуля и единицы (возникли комбинации 01 или 10), то имело место переполнение разрядной сетки и результат следует считать неверным.

В принципе, логика выполнения арифметических операций в двоичной системе счисления наиболее проста. Это наглядно видно на примере сравнения таблиц умножения десятичных цифр с одной единственной таблицей умножения двоичных цифр, имеющей вид: 00=0; 01=0; 10=0; 11=1.

Необходимо особо подчеркнуть, что правила выполнения арифметических операций над многоразрядными числами, представленными в позиционных системах счисления с различными основаниями, одни и те же. Отличие составляют лишь правила сложения и умножения одноразрядных чисел (для каждой системы счисления — свои таблицы умножения и сложения).

В цифровых вычислительных устройствах для реализации операций быстрого деления и умножения числа на 2n, гдеn – целое положительное число, используются операции сдвига двоичного кода числа вправо или влево. Сдвинуть двоичный код влево на один разряд соответствует умножению его на 2, а вправо – делению на 2. Например, десятичному числу 8 соответствует двоичный код 00001000, а десятичному числу 16, равному удвоенному значению 8, двоичный код 00010000. Очевиден сдвиг кода влево на один разряд. Десятичному же числу 4, вдвое меньшему 8, соответствует двоичный код 00000100. Налицо сдвиг вправо на один разряд двоичного кода. При проектировании цифровых умножителей на произвольный коэффициент используется алгоритм традиционного умножения столбиком.