Предположим, что 1
и это число в базе 2:
00000000000000000000000000000001
Теперь я хочу перевернуть все биты, чтобы получить следующий результат:
11111111111111111111111111111110
Насколько мне известно, решение состоит в том, чтобы использовать ~
(побитовый оператор NOT) для переключения всех битов, но результат ~1
равен -2
:
console.log(~1); //-2
console.log((~1).toString(2)); //-10 (binary representation)
Почему я получаю этот странный результат?