Я знаю, что ответ - 29, но я не уверен, как добраться до него.Значение дополнения 2's 011101
Обычно я бы 011101 получить свою обратную 100010 и добавить 1, чтобы получить 100011.
Значение этого 35. Как же тогда ответ 29?
Я знаю, что ответ - 29, но я не уверен, как добраться до него.Значение дополнения 2's 011101
Обычно я бы 011101 получить свою обратную 100010 и добавить 1, чтобы получить 100011.
Значение этого 35. Как же тогда ответ 29?
011101 is 29 //Binary to Decimal
100011 + 011101 = 000000 //100011 is inverse+1
100011 = -011101
100011 = -29
Там нет '35', потому что в системе комплиментов двух чисел число, начинающееся с «1», является отрицательным числом. Это означает, что, считая 6 бит, любое число, большее 31 (011111), фактически является отрицательным числом.
100011 правильный, и его десятичный эквивалент действительно равен 35. Откуда вы знаете, что это должно быть 29?
Ответ является 35, а не 29.
invert(0b011101) + 0b1 = 0b100010 + 0b1 = 0b100011 = 35
вопрос был для дополнения до двух 29:
0b011101 = 29
Процедура «обратная +1» предназначена для кодирования отрицательных чисел.
Вы знаете, это число является положительным, так как старший бит равен нулю, так:
1*2^4 + 1*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 16 + 8 + 4 + 0 + 1 = 29
Термин «дополнение до двух» является ambiguous.
011101
является в двоичное дополнение представление десятичного числа 29.011101
результатов в 100011
(десятичное -29, так как двоичное дополнение обозначения использует самые-significant- бит как знаковый бит).
Ум, объясняющий нижние горизонты? – NPSF3000