У меня есть код C #, который выглядит следующим образом:
uint a = 0x9E3779B9;
a += (uint)(url[k + 0] + (url[k + 1] << 8) + (url[k + 2] << 16) + (url[k + 3] << 24));
После этого кода == 228 452 386
Теперь я пытаюсь перевести этот код C # на PHP, но в PHP число не переполняется одинаково:
$a = 0x9E3779B9;
$a += ($url[$k+0] + ($url[$k+1] << 8) + ($url[$k+2] << 16) + ($url[$k+3] << 24));
После этого кода $ a == 4 523 419 682
В обоих случаях "url" рассматривается какмассив значений ASCII.Возвращает одинаковые результаты до момента добавления $ a к результату второй строки.В этот момент C # uint переполняется до ~ 228 миллионов.PHP становится «умным» и предлагает «правильный» ответ.
Но я хочу получить переполненный ответ, который дает C #.Что мне делать?