Я использую операцию ~
для манипуляции с битами, и мне просто интересно, как Java вычисляет отрицательное число?
Я проверил документацию по Java:
"Унарный оператор побитового дополнения" ~ "инвертирует бит-шаблон, он может применяться к любому из интегральных типов, делая каждый" 0 "a" 1 "и каждый" 1 "a" 0 ". Например, байт содержит 8 бит, применяя этот оператор к значению, бит-бит которого" 00000000 "изменит его шаблон на" 11111111".
Итак, если int a = 60 (0011 1100)
, то int c = ~a (1100 0011)
.
Вопрос в том, как Java вычисляет отрицательные числа так, чтобы 1100 0011 = -61
? Вычисляется единственный способ 1100 0011
-61
is
- старший бит - бит знака.
-
-2^6 + 2^1 + 2^0 = -61
.
Но для меня это не имеет смысла.