Задать вопрос
@synapse_people

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

Если сделать:
0xA9FC1A22|0x0
то в js:
-1443096030
а в php выдает:
int(2851871266)
почему... и где правильно?
  • Вопрос задан
  • 221 просмотр
Подписаться 2 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    JavaScript
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Правильно конечно в PHP.

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

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

Похожие вопросы