для чего нужен дополнительный код

Представление целых чисел: прямой код, код со сдвигом, дополнительный код

Выбор способа хранения целых чисел в памяти компьютера — не такая тривиальная задача, как могло бы показаться на первый взгляд. Желательно, чтобы этот способ:

Рассмотрим разные методы представления.

Содержание

Прямой код [ править ]

для чего нужен дополнительный код

Достоинства представления чисел с помощью прямого кода [ править ]

Недостатки представления чисел с помощью прямого кода [ править ]

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

Код со сдвигом [ править ]

для чего нужен дополнительный код

По сути, при таком кодировании:

Достоинства представления чисел с помощью кода со сдвигом [ править ]

Недостатки представления чисел с помощью кода со сдвигом [ править ]

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

Дополнительный код (дополнение до единицы) [ править ]

для чего нужен дополнительный код

В качестве альтернативы представления целых чисел может использоваться код с дополнением до единицы (англ. Ones’ complement).

Алгоритм получения кода числа:

Достоинства представления чисел с помощью кода с дополнением до единицы [ править ]

Недостатки представления чисел с помощью кода с дополнением до единицы [ править ]

Дополнительный код (дополнение до двух) [ править ]

для чего нужен дополнительный код

Чаще всего для представления отрицательных чисел используется код с дополнением до двух (англ. Two’s complement).

Алгоритм получения дополнительного кода числа:

Длинная арифметика для чисел, представленных с помощью кода с дополнением до двух [ править ]

Достоинства представления чисел с помощью кода с дополнением до двух [ править ]

Недостатки представления чисел с помощью кода с дополнением до двух [ править ]

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

Источник

Дополнительный код. Назначение и свойства дополнительного кода

для чего нужен дополнительный код для чего нужен дополнительный код для чего нужен дополнительный код для чего нужен дополнительный код

для чего нужен дополнительный код

для чего нужен дополнительный код

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

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

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

+1: 0000
В2дк =1: 0001

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

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

Арифметические операции над числами с фиксированной точкой в двоичном коде

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

4) Знаковые разряды участвуют в сложении так же, как и значащие.

5) Необходимые преобразования кодов производятся с изменением знаковых чисел. Приписанные незначащие нули изменяют свое значение при преобразовании по общему правилу.

6) При образовании единицы переноса из старшего разряда при использование обратного кода эта единица складывается с младшим числовым разрядом. При использовании дополнительного кода единица изменяется.

7) Знак результата формируется автоматически. Результат представляется в коде, в котором представлено слагаемое.

1) Произведение получается путем сложения частных переменных, представляемых собой разряды множимого сдвинутых влево в соответствии с позициями разрядов множителя.

2) Частные произведения, полученные умножением на ноль игнорируются.

3) При умножении n-разрядных сомножителей произведение увеличивается до n + n = 2n разрядов.

4) Знак произведения формируется путем сложения знаковых разрядов сомножителей.

5) Возможные переносы знакового разряда игнорируются.

Источник

Для чего предназначены обратный и дополнительный коды?

При выполнении арифметических операций в ЭВМ применяют специальные коды для представления чисел (с целью упрощения арифметических операций) : прямой, обратный и дополнительный коды чисел. Например, упрощается определение знака результата операции, вычитание есть сложение кодов, облегчено определение переполнения разрядной сетки.

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

Пример: Дано число X=-1011. Перевести число в прямой код.

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

Пример: Дано число X=-1011. Перевести число в обратный код.

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

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

Пример: Дано число X=-1011. Перевести в дополнительный код.

http://microkontroller.ru/programmirovanie-mikrokontrollerov-avr/pryamoy-obratnyiy-dopolnitelnyiy-kod-dvoichnogo-chisla/
.
для чего нужен дополнительный код

Источник

Вычислительная техника и программирование/Занятие 4

Содержание

Машинные коды [ править ]

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

Различают следующие коды двоичных чисел:

Прямой код [ править ]

Прямой код двоичного числа образуется из абсолютного значения этого числа и кода знака (0 или 1) перед его старшим числовым разрядом.

Обратный код [ править ]

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

Свое название обратный код получил потому, что коды цифр отрицательного числа заменены на инверсные. Наиболее важные свойства обратного кода чисел:

Дополнительный код [ править ]

Основные свойства дополнительного кода:

• сложение дополнительных кодов положительного числа С с его отрицательным значением дает т.н. машинную единицу дополнительного кода:

МЕдк=МЕок + 2 0 = 10|00…00,

т.е. число 10 (два) в знаковых разрядах числа;

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

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

Модифицированные обратные и дополнительные коды двоичных чисел отличаются соответственно от обратных и дополнительных кодов удвоением значений знаковых разрядов. Знак «+» в этих кодах кодируется двумя нулевыми знаковыми разрядами, а знак «–» – двумя единичными разрядами.

Арифметические действия в машинных кодах. [ править ]

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

Требуемая операцияНеобходимое преобразование
А+ВА+В
А-ВА+(-В)
-А+В(-А)+В
-А-В(-А)+(-В)

Здесь А и В неотрицательные числа. Скобки в представленных выражениях указывают на замену операции вычитания операцией сложения с обратным или дополнительным кодом соответствующего числа. Сложение двоичных чисел осуществляется последовательно, поразрядно в соответствии с таблицей. При выполнении сложения цифр необходимо соблюдать следующие правила:

Пример 1. Сложить два числа: А10 = 7, В10 = 16.

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

Сложение в обратном или дополнительном коде дает один и тот же результат:

По таблице необходимо преобразование А+(-В), в которой второй член преобразуется с учетом знака

для чего нужен дополнительный код

При сложении чисел в ОК и ДК были получены переносы в знаковый разряд и из знакового разряда. В случае ОК перенос из знакового разряда требует дополнительного прибавления единицы младшего разряда (п.4 правил). В случае ДК этот перенос игнорируется.

Практическая часть. [ править ]

Источник

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

Прямой код

Прямой код – это представление числа в двоичной системе счисления, при котором первый (старший) разряд отводится под знак числа. Если число положительное, то в левый разряд записывается 0; если число отрицательное, то в левый разряд записывается 1.

Таким образом, в двоичной системе счисления, используя прямой код, в восьмиразрядной ячейке (байте) можно записать семиразрядное число. Например:

0 0001101 – положительное число
1 0001101 – отрицательное число

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

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

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

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

Все остальные разряды числа в дополнительном коде сначала инвертируются, т.е. заменяются противоположными (0 на 1, а 1 на 0). Например, если 1 0001100 – это прямой код числа, то при формировании его дополнительного кода, сначала надо заменить нули на единицы, а единицы на нули, кроме первого разряда. Получаем 1 1110011. Но это еще не окончательный вид дополнительного кода числа.

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

1 1110011 + 1 = 1 1110100

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

Причина, по которой используется дополнительный код числа для представления отрицательных чисел, связана с тем, что так проще выполнять математические операции. Например, у нас два числа, представленных в прямом коде. Одно число положительное, другое – отрицательное и эти числа нужно сложить. Однако просто сложить их нельзя. Сначала компьютер должен определить, что это за числа. Выяснив, что одно число отрицательное, ему следует заменить операцию сложения операцией вычитания. Потом, машина должна определить, какое число больше по модулю, чтобы выяснить знак результата и определиться с тем, что из чего вычитать. В итоге, получается сложный алгоритм. Куда проще складывать числа, если отрицательные преобразованы в дополнительный код. Это можно увидеть на примерах ниже.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *