Побитовая операция 32-битного неподписанного JavaScript - одна короткая
Почему
((255<<24)|(255<<16)|(255<<8)|255)>>>0
равно 4294967295, когда
Math.pow(256,4)
равно 4294967296?
Обратите внимание, что побитовая операция одна короткая. Почему это?!
Ответ 1
Потому что нуль берет двоичное значение.
4294967296 - количество "слотов", которое дает 32 бита, 4294967295 - это десятичное число, занимающее самый высокий слот.
Ответ 2
Поскольку первый из них равен 2 ^ 32-1, а второй - 2 ^ 32? Вы знаете, что с первым "утверждением" вы устанавливаете 1 первые 32 бита значения, правильно?
В 32 бит первый бит "оценивается" 1, второй 2, третий 4... 32-й 2147483648. Их сумма составляет 4294967295: -)