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