J'ai un code C# qui ressemble à ceci:Comment forcer PHP pour traiter un certain nombre comme un uint
uint a = 0x9E3779B9;
a += (uint)(url[k + 0] + (url[k + 1] << 8) + (url[k + 2] << 16) + (url[k + 3] << 24));
Après ce code, un == 228 452 386
Maintenant, je suis en train de traduire ce code C# pour PHP, mais en PHP le nombre ne déborde pas de la même façon:
$a = 0x9E3779B9;
$a += ($url[$k+0] + ($url[$k+1] << 8) + ($url[$k+2] << 16) + ($url[$k+3] << 24));
Après ce code, $ a == 4 523 419 682
Dans les deux cas, "url" est traité comme un tableau de valeurs ascii. La fonction renvoie les mêmes résultats jusqu'au moment où $ a est ajouté au résultat de la deuxième ligne. À ce stade, le C# uint déborde à ~ 228 millions. PHP devient "intelligent" et arrive avec la "bonne" réponse. Mais je veux la réponse débordée que donne C#. Que devrais-je faire?