русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Дополнительный код.


Дата добавления: 2014-11-27; просмотров: 891; Нарушение авторских прав


Кодирование чисел в дополнительном коде можно получить естественным путем при помощи операции вычитания (моделирования работы вычитающего счетчика). Для начала рассмотрим дополнительный код для десятичной системы счисления. За начальное состояние возьмем значение счетчика – 4, разрядность счетчика – 3:

Начальное состояние счетчика: 0 003 положительное число 3

после вычитания 1 0 002 положительное число 2

после вычитания 1 0 001 положительное число 1

после вычитания 1 0 000 нулевое значение счетчика

после вычитания 1 9 999 отрицательное число – минус 1; это и следующие значения рассматриваются как коды отрицательных чисел

после вычитания 1 9 998 отрицательное число – минус 2

после вычитания 1 9 997 отрицательное число – минус 3

и т.д.

Положительные числа от отрицательных отличаются значением старшего разряда. Если он равен 9. то число отрицательное, иначе – положительное.

Пример выполнения вычитания в дополнительном коде:

А = В – С. где: В = 0 005, С = 0 003

Заменяем действие вычитание положительного числа на сложение с отрицательным числом: А = В + ( – С). Здесь по коду положительной величины С (0 003) находится код отрицательной величины ( – С = 9 997) и производится действие сложение:

0 005

+ 9 997

1½0 002

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

Определение кода отрицательной величины по коду положительной величины (операция инверсии знака) производится по правилу: каждую цифру (включая знак) меняют на дополнение до 9: (0® 9), (1®8), (2®7)….(9 ®0) и полученный результат увеличивают на 1.

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

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



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

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

Пример. Числа: А = 5(10)= 0.0101(2) и В = (–5(10))= 1.1011(2) являются дополнительными, т.к. их сумма равна нулю (перенос из старшего разряда отбрасывается):

0.0101

+ 1.1011

1| 0.0000.

 

Они содержат значащие цифры и знак (в примере знак отделен точкой).

Имеется и другая интерпретация дополнительного кода. Знаковый разряд рассматривается как обычный цифровой, но с отрицательным весом. У положительных чисел значение этого разряда равно нулю, а у отрицательного – минус единица в соответствующей (положительной) степени.

Так как 2n > , число всегда отрицательно, если его старшая (знаковая) цифра равна 1.

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

А = 0.0101 = 100(2) + 1(2) = 4(10) + 1(10) = 5(10)

В = 1.1011 = (– 10000(2)) + 1000(2) + 10(2) +1(2) = (– 16(10)) +8(10)+2(10)+1(10) = (– 5(10)).

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



<== предыдущая лекция | следующая лекция ==>
Общие положения | Модифицированный дополнительный код


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.463 сек.