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


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

Дополнительный код отрицательного числа m равен 2k - |m|, где k - количество разрядов в ячейке.

Заметим, что в компьютерной k -разрядной арифметике 2k = 0, так как двоичная запись этого числа состоит из одной единицы и k нулей, а в ячейку из k разрядов может уместиться только k цифр, в данном случае они все нули. Таким образом, дополнительный код отрицательного числа - это дополнение |m| до 2k (или до нуля в k -разрядной арифметике: 2k - |m| + |m| = 0).

Как уже было сказано, при представлении неотрицательных чисел в беззнаковом формате все разряды ячейки отводятся под само число. Например, запись числа 24310 = 111100112 в одном байте при беззнаковом представлении будет выглядеть следующим образом:

При представлении целых чисел со знаком самый старший (левый) разряд отводится под знак числа, и под собственно число остается на один разряд меньше. Поэтому, если приведенное выше состояние ячейки рассматривать как запись целого числа со знаком, то для компьютера в этой ячейке записано число -13 (так как 243 + 13 = 256 = 28).

Но если это же отрицательное число записать в ячейку из 16-ти разрядов, то содержимое ячейки будет следующим:

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

С какой целью отрицательные числа записывают в виде дополнительного кода и как получить дополнительный код отрицательного числа?

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

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

 



Дата добавления: 2016-12-27; просмотров: 2496;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.007 сек.