@synapse_people

Почему разные результаты побитовых операций?

Если сделать:
0xA9FC1A22|0x0
то в js:
-1443096030
а в php выдает:
int(2851871266)
почему... и где правильно?
  • Вопрос задан
  • 217 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Правильно конечно в PHP.

Дело в том, что в JS побитовые операции выполняются над 32-битными целыми числами со знаком, для которых максимальное положительное значение 2147483647. Что меньше, чем 2851871266. Соответственно, получается переполнение.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы