Ваш вопрос не имеет "правильного" ответа. Сначала вы должны определить представление, которое хотите использовать. Вы хотите использовать дополнение двух , дополнение единиц , знак-значение или что-то еще? Затем вы должны определить, сколько бит использовать.
Допустим, мы работаем с представлениями шириной 5 бит.
+10: 0 1 0 1 0
Давайте посмотрим на систему знаковых величин. В этой системе самый старший бит (бит 5) равен 1
, если число отрицательное, и 0
в противном случае. Остальные биты представляют величину (абсолютное значение) числа.
Итак, мы получаем:
-10: 1 1 0 1 0 (sign-magnitude, 5 bits)
Давайте посмотрим на их дополнение сейчас. Здесь отрицательное число представляется просто изменением 1
s на 0
s и наоборот (отсюда и дополняют имена - вы дополняете число относительно длинной последовательности 1
s).
Итак, мы получаем:
-10: 1 0 1 0 1 (ones' complement, 5 bits)
Наконец, давайте посмотрим на систему двух дополнений. В этом мы берем число в его системе дополнения, а затем добавляем 1
к нему.
Итак, мы получаем:
-10: 1 0 1 0 1
1
---------
1 0 1 1 0 (two's complement, 5 bits)
---------
Таким образом, двоичное представление отрицательного числа зависит от системы, которую мы используем, и от количества доступных нам битов.
Кроме того, вы могли заметить положение апострофа в дополнении к и дополнении в два . Почему не является дополнением или twos ' дополнением? Тогда ответь от Кнута:
Число дополнения до двух дополняется относительно одной степени 2, а число дополнения до единицы дополняется относительно длинной последовательности 1 с. В самом деле, существует также «двойная нотация дополнения», которая имеет основание 3 и дополнение по отношению к (2 ... 22) 3