Дополнительный код
Обратный код
получается инвертированием всех цифр двоичного кода абсолютной величины числа для отрицательного числа. Обратный код положительного числа равен прямому.
Пример: число: -1, модуль 00000001, обратный код 11111110
Для обратного кода справедливо следующее соотношение:
n-разрядность машинного слова, aзн =0 для положительных чисел, aзн =1 для отрицательных чисел.
1010 = 1*(-23+1)+[0x20+1x21+0x22]= -7+2=-5
Дополнительный код положительного числа совпадает с прямым, а отрицательного можно получить двумя способами:
I вариант. Переписать исходную последовательность битов числа справа налево до первой единицы, включая ее. Остальные биты инвертировать. | 610=01102 -610=10102 |
II вариант. Дополнительный код = логическое дополнение (все биты инвертированы)+1 | -610=10012+1 =10102 |
Для дополнительного кода справедливо следующее соотношение:
![]() |
где n-разрядность машинного слова, aзн =0 для положительных чисел, aзн =1 для отрицательных чисел.
ПримерСтруктурной записи числа -193(10) = -11000001(2) в разрядной сетке ПК.
Число с фиксированной запятой формата слово со знаком:
Знак числа | величина числа | |||||||||||||||
N разряда | ||||||||||||||||
Число в пр. коде | ||||||||||||||||
Обр.код | ||||||||||||||||
Доп. код |