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

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

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

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

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

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