Я знаю, что ответ на этот вопрос опубликован довольно давно, но я хотел бы поделиться своим ответом на этот же вопрос.
Чтобы найти дополнение к числу, сначала найдите его двоичный эквивалент. Здесь десятичное число 2
представляется как 0000 0010
в двоичной форме. Теперь возьмите свое дополнение, инвертируя (переворачивая все 1 в 0 и все 0 в 1) все цифры своего двоичного представления, что приведет к:
0000 0010 → 1111 1101
Это дополнение к десятичному числу 2. А поскольку первый бит, т. Е. Бит знака, равен 1 в двоичном числе, это означает, что знак является отрицательным для числа, которое он сохранил. , (здесь упоминается число не 2, а дополнение к 2).
Теперь, поскольку числа хранятся в виде дополнения к 2 (принимая дополнение к числу плюс один), поэтому для отображения этого двоичного числа, 1111 1101
, в десятичном формате, сначала нам нужно найти дополнение к его 2, которое будет быть:
1111 1101 → 0000 0010 + 1 → 0000 0011
Это дополнение к двум. Десятичное представление двоичного числа, 0000 0011
, равно 3
. И, поскольку бит знака был один, как упомянуто выше, итоговый ответ - -3
.
Подсказка: Если вы внимательно прочитаете эту процедуру, то заметили бы, что результатом для оператора дополнения на самом деле является число (операнд - к которому применяется этот оператор) плюс единица с отрицательный знак Вы можете попробовать это и с другими номерами.