dllweb
@dllweb

Как переписать хеш функцию с js на php?

Доброго времени господа, вопрос интересующий меня в заголовке не тривиальный всё же думаю.
Не подскажете как, мне правильно переписать функцию написанную на js в php

Что именно не ясно, так это побитовые операции, в js и в php т.к функция генерирует хеш строку, нужно максимально приближать результат функции на js к той же функции на php

Допустим JS:
var p = (C >>> 2 | C << 30);
и PHP:
$p = ($C >> 2 | $C << 30)

На сколько критичны различия сдвигов в js >>> и в php >> ?
  • Вопрос задан
  • 262 просмотра
Пригласить эксперта
Ответы на вопрос 2
Для неотрицательных чисел правый сдвиг с заполнением нулями >>> и правый сдвиг с переносом знака >> дадут одинаковый результат, т.к в обоих случаях слева добавятся нули.

Для отрицательных чисел – результат работы разный. Например, -9 >>> 2 даст 1073741821, в отличие от -9 >> 2 (дает -3).


https://learn.javascript.ru/bitwise-operators#%D0%...
Ответ написан
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
Все бинарные операции в js работают с типом int32 (signed), кроме одной - >>> которая работает с типом uint32, то есть старший бит (в int32 это бит знака) участвует в сдвиге
В php есть отдельный тип для целых чисел, php.net/manual/ru/language.types.integer.php
И размерность его зависит от платформы, при этом он всегда знаковый, так что да, результат может быть разным, на windows и 32 разрядных платформах, на 64 разрядных будет совпадать
Ответ написан
Ваш ответ на вопрос

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

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