Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_-_do_triggerov.docx
Скачиваний:
21
Добавлен:
25.11.2019
Размер:
732.35 Кб
Скачать

Прямой, обратный, дополнительный коды.

В предыдущем разделе мы узнали, как представить дробное число в виде одного либо двух целых. Теперь рассмотрим способы записи целых чисел, используемые при проектировании цифровых микросхем, операции над дробными числами сводятся к операциям над целыми числами.

Положительное число Х в прямом, дополнительном и обратном кодах есть просто двоичное представление Х с приписанным слева знаковым битом, равным нулю. (т. к. элементы памяти, шины передачи данных, счётчики и тп. ограничивают размер помещаемого числа, то принято говорить о разрядной сетке, т. е. о количестве разрядов, отведённых под число + знаковый разряд, показывающий знак числа, он пишется самым первым и равен 1 для отрицательного числа, переполнение разрядной сетки – когда число не влезает в отведённое ему количество разрядов) .

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

Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа - его двоичное представление.

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

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

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

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

Умножение техника выполняет как накапливающееся сложение (подобно умножению «в столбик»), деление реализуется путем многократного прибавления к делимому дополнительного кода делителя.

Модифицированные обратный и дополнительный коды.

В модифицированном обратном и модифицированном дополнительном кодах под знак числа отводится не один, а два разряда: "00" соответствует знаку "+", "11" - знаку "-". Любая другая комбинация ("01" или "10"), получившаяся в знаковых разрядах служит признаком переполнения разрядной сетки. Сложение чисел в модифицированных кодах ничем не отличается от сложения в обычных обратном и дополнительном кодах.

Пример: Сложить числа 111 и -11в прямом, обратном и дополнительном кодах.

Сложение в прямом коде (восьмиразрядная сетка)

0 0000111+1 0000011=(111-11=100, берём знак большего по модулю 111)=0 0000100

Сложение в обратном коде (восьмиразрядная сетка)

0 0000111+ 1 1111100 = 1 0 0000011 => 0 0000011 + 1 = 0 0000100

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

Сложение в дополнительном коде (восьмиразрядная сетка)

0 0000111+ 1 1111101 = 1 0 0000100 => 0 0000100

«лишнюю» единицу просто вычёркиваем.

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