Интернет магазин китайских планшетных компьютеров



Компьютеры - Дополнительный код (представление числа)

24 февраля 2011


Оглавление:
1. Дополнительный код (представление числа)
2. Преобразование дополнительного кода
3. Дополнительный код для десятичных чисел
4. Пример программного преобразования



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

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

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

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

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

Двоичное 8-ми разрядное число со знаком в дополнительном коде может представлять любое целое в диапазоне от −128 до +127. Если старший разряд равен нулю, то наибольшее целое число, которое может быть записано в оставшихся 7 разрядах равно 2 − 1, что равно 127.

Примеры:

Десятичное
представление
Код двоичного представления
прямой дополнительный
127                 01111111                 01111111                
1                 00000001                 00000001                
0                 00000000                 00000000                
-0                 10000000                 --------                
-1                 10000001                 11111111                
-2                 10000010                 11111110                
-3                 10000011                 11111101                
-4                 10000100                 11111100                
-5                 10000101                 11111011                
-6                 10000110                 11111010                
-7                 10000111                 11111001                
-8                 10001000                 11111000                
-9                 10001001                 11110111                
-10                 10001010                 11110110                
-11                 10001011                 11110101                
-127                 11111111                 10000001                
-128                 --------                 10000000                

При применении той же идеи к привычной 10-ричной системе счисления получится:

10-ричная система счисления
10-ричная система счисления,
дополнительный код
... ...
13 0013
12 0012
11 0011
10 0010
9 0009
8 0008
... ...
2 0002
1 0001
0 0000
-1 9999
-2 9998
-3 9997
-4 9996
... ...
-9 9991
-10 9990
-11 9989
-12 9988
... ...


Просмотров: 8691


<<< Двоично-десятичный код
Дроби в Юникоде >>>