# Знаковое обозначение. Прямой, обратный и дополнительный код Позволяет записать отрицательные числа Прямой код: отрицательное число отличается от положительного только значением последнего бита (1 у отрицательных). Например: 7 = 0111, -7 = 1111. 0 = страхолюдина Мне лень это расписывать - в таблице все понятно | Число | Прямой код | Обратный код | Дополнительный код | | -------- | -------- | -------- | ---- | | -8 | - | - | 1000 | | -7 | 1111 | 1000 | 1001 | | -6 | 1110 | 1001 | 1010 | | -5 | 1101 | 1010 | 1011 | | -4 | 1100 | 1011 | 1100 | | -3 | 1011 | 1100 | 1101 | | -2 | 1010 | 1101 | 1110 | | -1 | 1001 | 1110 | 1111 | | 0 | 10000000 | 11110000 | 0000 | | 1 | 0001 | 0001 | 0001 | | 2 | 0010 | 0010 | 0010 | | 3 | 0011 | 0011 | 0011 | | 4 | 0100 | 0100 | 0100 | | 5 | 0101 | 0101 | 0101 | | 6 | 0110 | 0110 | 0110 | | 7 | 0111 | 0111 | 0111 | ### Дополнение до 1 (обратный код) - если число положительное, то в старший разряд (который является знаковым) записывается ноль, а далее записывается само число; - если число отрицательное, то код получается инвертированием представления модуля числа (получается обратный код); - если число является нулем, то его можно представить двумя способами: +0 (000…000) или −0 (111…111). ### Дополнение до 2 (дополнительный код) Дополнение до 2 двоичного числа определяется как величина полученная вычитанием числа из наибольшей степени двух (из 2N для N-битного дополнения до 2). При записи числа в дополнительном коде старший разряд является знаковым. В нашем случае из 11111111 вычитается значение регистра