2016-07-13 10 views

ответ

5

От MDN

Операнды всех битовых операторов преобразуются в подписанных 32-разрядных целых чисел в формате с дополнением до двух.

Когда интерпретируется как знаковое 32-битовое целое число, значение 0xd41ddb80 представляет число -736240768. Использование любого оператора побитового на этот номер будет принуждать его в знаковый 32-разрядное целое число:

console.log(~~0xd41ddb80) 
console.log(0xd41ddb80 & 0xffffffff) 
console.log(0xd41ddb80 | 0) 

база-16 эквивалент -736240768 является -2be22480, и это то, что вы видите.

Аналогичное поведение можно сравнить с любым числом, большим или равным 0x80000000.

 Смежные вопросы

  • Нет связанных вопросов^_^