Лекция
Привет, Вы узнаете о том , что такое модифицированный код, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое модифицированный код, дополнительный код, обратный код , настоятельно рекомендую прочитать все из категории Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ.
В лекции описаны модифицированные необязательные и обратные коды. Приведены методы умножения чисел с фиксированной запятой в прямом и дополнительном кодах, а также алгоритмы сдвига. Важной особенностью рассматриваемых кодов является то, что во время операции сложения-вычитания цифровая часть номера не переполняется и переносится в цифру знака. Переполнение происходит только при знаковом разряде. Это происходит потому, что сумма двух слагаемых по абсолютной величине меньше единицы. При решении реальных проблем зачастую трудно заранее определить, меньше ли сумма двух слагаемых, чем единица. В любом случае, чтобы предотвратить переполнение, вы можете ввести дополнительные ограничения на количество терминов, которые сужают диапазон чисел, с которыми работает машина. Оба недопустимы.
Рассмотрим такой пример:
То есть получаем неправильный результат как по знаку, так и в цифровой части.
Рассмотрим еще один пример:
То есть в этом случае возникающее переполнение в цифровой части искажает результат операции. Можно отметить, что переполнение числовой сетки происходит в случае идентичных знаков терминов, поскольку именно в этом случае модуль результата превосходит модули каждого из терминов, факт переполнения можно исправить, изменив знак результата. Таким образом, одним из способов устранения переполнения является автоматическое определение перехода от одних и тех же знаков слагаемых к противоположному знаку результата. Однако такой способ устранения переполнения неудобен, поскольку ранее признаки терминов нужно запоминать, сравнивать друг с другом и после получения результата. Есть еще один принцип для устранения переполнения. Этот принцип основан на использовании так называемых модифицированных кодов. Очевидно, что когда сетка разгрузки переполнена, вычисления должны быть остановлены или, по крайней мере, должен быть разработан специальный признак переполнения, и решение о прекращении расчетов должно быть назначено программисту..
Существо модифицированных кодов состоит в том, что к знаковому разряду добавляется еще один разряд:
" + " ставится в соответствие 00
" – " ставится в соответствие 11
Тогда, по определению модифицированным дополнительным кодом числа называется
Возникающий в знаковых разрядах перенос теряется. В целом же модифицированный код не отличается от простого дополнительного. Аналогично, по определению, обратным кодом является:
Как и в случае простого обратного кода, возникающая единица переноса в знаковых разрядах по цепи циклического переноса добавляется в младший разряд цифровой части числа.
Так как в сложении по-прежнему участвуют только числа меньше единицы, то
S = X + Y < 2
Поэтому старший знаковый разряд не может быть искажен переносом из цифровой части числа, с другой стороны, перенос, возникающий при сложении чисел в случае, когда
S = X + Y > 1
искажает младший знаковый разряд.
Несовпадение знаковых разрядов после выполнения операции указывает на факт наличия переполнения.
При этом различают два типа переполнения:
Первому ставится в соответствие комбинация 01 в знаковых разрядах, а второму – 10.
Примеры
Модифицированный дополнительный код :
Модифицированный обратный код
Умножение чисел со старших разрядов в прямом коде
Это есть аналитическая запись алгоритма умножения двух чисел, начиная со старших разрядов множителя.
Алгоритм:
Знак произведения находится независимо от получения цифровой части по формуле:
Пример:
Видно, что в общем случае нужно иметь для точного результата сетку с числом разрядов, равным сумме разрядностей сеток сомножителей.
Если нужно получать произведение с точностью не хуже, чем 2-n, то достаточно иметь не удвоенную величину разрядной сетки, а лишь увеличенную на
Умножение с младших разрядов в прямом коде
Напишем выражение для произведения двух чисел в несколько измененном виде, а именно:
Это выражение называется преобразованием по схеме Горнера и задает алгоритм умножения с младших разрядов множителя.
Таким образом, для умножения должна выполняться следующая последовательность действий:
Пример:
Замечание.
Для получения произведения с точностью не ниже, чем 2-n нужно иметь только "n"– разрядную сетку.
Итак, видим, что для получения произведения как при умножении со старших,так и младших разрядов необходимо выполнять двемикрооперации: суммирование чисел в позиционной системе счисления и сдвига.
Однако, известно, что числа могут быть представлены в различных кодах(это, прежде всего, отрицательные числа).
Мы уже знаем, как выполняется операция суммирования чисел (в том числе и с разными знаками).
Однако микрооперация сдвига имеет некоторые особенности:
Сдвиг вправо:
Сдвиг влево возможен только в случае, если сдвинутое число меньше единицы по модулю:
Исходные числа:
Если чисто формально сделать преобразование выражения некоторого числа, записанного в прямом коде до выполнения сдвига и после выполнения микрооперации сдвига, в обратный модифицированный код, то:
То есть при сдвиге вправо отрицательного числа старшие разряды заполняются единицами. При сдвиге влево в старшие и младшие разряды пишутся единицы.
Пользуясь аналогичными правилами, нетрудно установить, что при сдвиге влево отрицательного числа в модифицированномдополнительном коде младшие разряды сдвинутого числа нужно заполнить нулями.
Умножение с младших разрядов в дополнительном коде
Алгоритм:
Пример:
Умножение со старших разрядов в дополнительном коде
вопрос
В чем заключаются причины использования модифицированных кодов чисел?
ответ
Для обнаружения переполнения разрядной сетки можно использовать модифицированные коды. Модифицированные коды отличаются от обычных кодов тем, что знак числа кодируется двумя разрядами. При выполнении алгебраического сложения или вычитания два знаковых разряда участвуют в операции как равноправные цифровые разряды. После выполнения операции содержимое знаковых разрядов определяет знак результата (левый знаковый разряд) и наличие переполнения (несовпадение знаковых разрядов): комбинация 01 фиксирует переполнение при сложении положительных чисел (положительное переполнение), а 10 – отрицательных (отрицательное переполнение).
Выводы из данной статьи про модифицированный код указывают на необходимость использования современных методов для оптимизации любых систем. Надеюсь, что теперь ты понял что такое модифицированный код, дополнительный код, обратный код и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ
Из статьи мы узнали кратко, но содержательно про модифицированный код
Комментарии
Оставить комментарий
Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ
Термины: Цифровые устройства. Микропроцессоры и микроконтроллеры. принципы работы ЭВМ