2013-06-23 3 views
0

Я знаю, что ответ - 29, но я не уверен, как добраться до него.Значение дополнения 2's 011101

Обычно я бы 011101 получить свою обратную 100010 и добавить 1, чтобы получить 100011.

Значение этого 35. Как же тогда ответ 29?

ответ

1
011101 is 29 //Binary to Decimal 
100011 + 011101 = 000000 //100011 is inverse+1 
100011 = -011101 
100011 = -29 

Там нет '35', потому что в системе комплиментов двух чисел число, начинающееся с «1», является отрицательным числом. Это означает, что, считая 6 бит, любое число, большее 31 (011111), фактически является отрицательным числом.

+0

Ум, объясняющий нижние горизонты? – NPSF3000

0

100011 правильный, и его десятичный эквивалент действительно равен 35. Откуда вы знаете, что это должно быть 29?

0

Ответ является 35, а не 29.

invert(0b011101) + 0b1 = 0b100010 + 0b1 = 0b100011 = 35 

вопрос был для дополнения до двух 29:

0b011101 = 29 
0

Процедура «обратная +1» предназначена для кодирования отрицательных чисел.

Вы знаете, это число является положительным, так как старший бит равен нулю, так:

1*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 16 + 8 + 4 + 0 + 1 = 29

1

Термин «дополнение до двух» является ambiguous.

  • 011101 является в двоичное дополнение представление десятичного числа 29.
  • Выполнение этих двух дополнений операции на 011101 результатов в 100011 (десятичное -29, так как двоичное дополнение обозначения использует самые-significant- бит как знаковый бит).