Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ТЕОРИИ ЦИФРОВЫХ УСТРОЙСТВ И....doc
Скачиваний:
20
Добавлен:
01.05.2025
Размер:
5.42 Mб
Скачать

2.5 Кодирование отрицательных чисел

Для выполнения арифметических операций двоичные числа кодируются специальными машинными кодами: прямыми, дополнительными и обратными, позволяющими заменить операции вычитания операциями суммирования, что упрощает построение арифметическо-логических устройств.

Прямой код. Представление двоичных чисел в прямом коде основано на подаче их в абсолютном виде с соответствующим знаком: плюс – 0 или минус – 1.

Формула для образования прямого двоичного числа имеет вид:

.

Пример 2.5.1

а) N = +0.0101; Nпр = 0.0101

б) N = – 0.0101; Nпр = 1 – (– 0.0101) = 1.0101.

Ноль в прямом коде может выглядеть двояко, т.е. может быть и положительным и отрицательным

а) N = +0.00...00; Nпр = 0.00...00;

б) N = – 0.00...00; Nпр = 1.00...00.

Прямой код используется для хранения чисел в устройствах ввода и вывода информации, а также при выполнении операции умножения.

Обратный код. Формула для образования обратного кода имеет вид:

.

Пример 2.5.2

N = – 0.1010112 ,

Nобр =102 – 0.101011 – 0.000001 = 1.010100.

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

В обратном коде нуль изображается неоднозначно:

N = + 0.00...00; Nобр = 0.00...00;

N = – 0.00...00; Nобр = 1.11...11.

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

Пример 2.5.3 N = 0.1010 = 102 + (– 0.1010) = – 1.0101.

Дополнительный код положительного числа полностью совпадает с изображением числа в прямом коде.

Чтобы записать отрицательное число в дополнительном коде, нужно в знаковом разряде этого числа поставить единицу, а во всех числовых разрядах нули заменить единицами, а единицы – нулями и к полученному результату прибавить единицу младшего разряда.

Пример 2.5.4 N = – 0.1010, Nобр = 1.0101, Nдоп = 1.0110.

В дополнительном коде отрицательный нуль отсутствует.

Модифицированные коды

В отличие от обычных машинных кодов в модифицированных кодах под знак числа отводится два разряда: плюс изображается двумя нулями, а минус – двумя единицами. Это весьма удобно для выявления переполнения разрядной сетки, которое может получиться при сложении чисел с одинаковыми знаками.

Пример 2.5.6

Числа А = + 0.10101 и В = – 0.1010 представить в обратном и дополнительном кодах.

АMпр = 00.10101, АMобр = 00.10101 , А Mдоп = 00.10101;

ВMпр = 11.10101, ВMобр = 11.01010 , ВMдоп = 11.01011.

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

Пример 2.5.6 Сложить в модифицированном обратном коде двоичные числа А и В при условии: А  0, В  0, (А + В)  0.

Знак 01 говорит о том, что получен положительный результат, а перенос из старшего разряда в знаковый указывает на то, что произошло переполнение разрядной сетки. Следовательно, истинный результат получен в прямом коде и равен: 0.110002 = 2410.

Пример 2.5.7 Сложить в модифицированном обратном коде двоичные числа А и В при условии: А  0, В  0, (А + В)  0. Переведем А и В в обратные модифицированные коды и произведем их сложение.

Сочетание двух единиц в знаковых разрядах показывает, что знак суммы отрицательный: (А+В)пр = 11.01002 = – 410.

Пример 2.5.8 Сложить в модифицированном обратном коде двоичные числа А и В при условии: А  0, В  0, (А + В)  0. Переведем А и В в обратные модифицированные коды и произведем их сложение.

Сочетание 10 в знаковых разрядах указывает на то, что результат получен отрицательный (старшая единица), а ноль указывает на то, что произошло переполнение разрядной сетки. Для получения прямого кода проинвертируем биты результата и получим: 1.110002 = – 2410.

Сложение чисел в модифицированном дополнительном коде осуществляется по правилам двоичной арифметики. Единица переноса, возникающая в старшем знаковом разряде суммы, отбрасываетсязряд, первый разряд служит для анализа переполнения разрядной сетки.

Пример 2.5.9 Сложить в модифицированном дополнительном коде двоичные числа А и В при условии: А  0, В  0, (А + В)  0. Переведем. Знаковым разрядом числа является второй слева от запятой ра А и В в дополнительные модифицированные коды и произведем их сложение.

Получилось число в дополнительном коде. Переведем его в прямой код, для чего инвертируем каждый разряд числа и к младшему разряду прибавим единицу. Сочетание двух единиц в знаковых разрядах показывает, что знак суммы отрицательный: (А + В)пр = 11.01002 = – 410.