Дополнительный код числа
Дополнительный код положительного числа равен прямому коду этого числа.
Дополнительный код отрицательного числа 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; просмотров: 2491;