Была такая тема в прошлом году по информатике, может, и пригодится...
В общем, прямые коды со знаковым битом не используются из-за появления специальной арифметики. Используется специальное кодирование - 0 и положительные числа-как обычно до того, как не будет достигнуто число 0111(для 4-битного поля). -1=1111,-2=1110 итд. Это называется дополнительный код. Чтобы получить такой код для отрицательного числа, надо из кода на 1 больше, чем максимально возможный для данного поля, вычесть код числа, как если бы оно было положительным.(Например, дополнительный код числа -3 будет для 4-х битного поля 10000-11=1101). По дополнительному коду прямой получается по тем же правилам.(То есть из числа на 1 больше максимального вычитается дополнительный код). Такие дополнительные коды могут складываться как обычно (ведь вычитание-это сложение с отрицательным числом. Например, -3+2 в десятичной системе в дополнительных кодах будет выглядеть как 1101+10=1111=-1, 3-2 будет 11+1110=10001, первя единичка убиреется(у нас 4-х битное поле), результат=1). Надеюсь, ответил на вопрос.
|