контекст возвращает ноль интерфейса после использования значения (ключ)

Использование двух дополнений для представления отрицательных значений имеет преимущество, заключающееся в том, что вычитание и добавление одинаковы. В вашем случае вы можете думать о 12 - 7 как 12 + (-7). Следовательно, вам нужно только найти представление дополнений двух -7 и добавить его в +12:

12  001100
-7  111001   -- to get this, invert all bits of 7 (000111) and add 1
----------
 5 1000101

. Затем отбросить перенос (указывает на переполнение), и у вас есть результат: 000101, который равен до 5, как ожидалось.

Для вашего примера из -15 + 2 просто следуйте той же процедуре, чтобы получить дополнительное представление двух -15:

15  001111
    110000   -- inverted bits
    110001   -- add 1

. Теперь добавьте как обычный:

-15  110001
  2  000010
-----------
res  110011

Чтобы убедиться, что res действительно равно -13, вы можете видеть, что он отрицательный (набор MSB). Для величины, конвертировать в положительную (инвертировать биты, добавить 1):

res  110011
     001100  -- inverted bits
     001101  -- add 1

Следовательно, величина равна 13, как ожидалось.

-1
задан Pensu 1 March 2019 в 08:59
поделиться

1 ответ

Разобрался. Я использовал loggerKey {} в качестве ключа, тогда как фактический ключ - log.loggerKey {}. Мне пришлось импортировать журнал, и тогда это сработало.

0
ответ дан Pensu 1 March 2019 в 08:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: