«В информатике бит знака - это бит в представлении числа со знаком, который указывает знак числа.Только знаковые числовые типы данных имеют бит знака, и его место обычно является самым левым, где находится старший значащий бит в числах без знака.Числа с плавающей точкой в формате IEEE всегда подписываются, причем бит знака находится в крайнем левом положении.Как правило, если бит знака равен 1, то число является отрицательным (в случае двух целых чисел дополнения) или неположительным (для целых чисел дополнения, целых чисел знака и величины и чисел с плавающей запятой), тогда как 0 обозначаетнеотрицательное число »(http://en.wikipedia.org/wiki/Sign_bit)
N битов может представлять - (2 ^ (n-1) - 1) до (2 ^ (n-1) - 1)
СейчасЧто касается вашего вопроса, я бы предложил вам использовать тот же метод, который использовался компьютерами для выполнения вычитания двоичных чисел, например, в добавлении формата дополнения 2 с. Вы можете использовать прямое вычитание, но не рекомендуется.
например: - Предположим, что 185 и 122 являются 8-разрядными знаковыми десятичными целыми числами со знаком, сохраненными в формате знаковых величин. Вычислите 185 + 122. Есть ли переполнение, недостаточное или нет?
Ответ: 51 и безопасная операция . Как?
185 -> 1011 1001
, так как самый левый бит равен 1, поэтому он отрицательный. Оставьте самый старший бит, который равен 1, что оставляет вас с:
011 1001
Теперь уВы хотите взять дополнение 2, просто переключите каждые 0 на 1 и каждые 1 на 0 и добавьте единицу к результату.Вы получите:
100 0111
Следовательно, 185 -> 1100 0111 (-71) в 8-битном знаковом представлении в соответствии с нашей компьютерной программой.Таким образом, поэтому решение 185 + 122 как 8-битных целых на самом деле -71 + 122 = 51.
185(-71) -> 1011 1001
+122 -> 1000 0110
-----------------------------
051 -> 0011 0011
Теперь это может показаться неправильным результатом, но это ограничение использования только 8-битной памятии в соответствии с нашими компьютерами и определением представления битов со знаком это, на самом деле, правильный результат, требуемый в этом случае.