[PHP] Poradzić sobie z jego signed int

0

Witam, jak to obliczyć żeby było wszędzie jednakowo ?

muszę obliczyć:

4882632828 xor 441522

lokalnie wychodzi mi

-587312330 i tak właśnie ma wyjść (bo po sprintf "%u" chyba jest dobrze - w każdym razie wyjściowy hash się zgadza z tym co ma być)

tymczasem po wgraniu na serwer okazuje się że wychodzi już:

-2147042126

zrobiłem funkcję rozbijającą liczbę na low i high, liczącą na mniejszych więc składowych i składającą z powrotem jednak wynik działania tej funkcji jest dobry tylko w jakichś 90% przypadków, tymczasem na powyższy przykład odpowiada:

-587312334

ogólnie błędy są w granicach 0 - 6, tylko w jednym przypadku myli się o 350 :|

zaraz zwariuję, mógłby mi ktoś wytłumaczyć jak bezboleśnie operować w PHP na liczbach ? [glowa]

trochę niezbyt jasno o tej godzinie myślę to może być głupota

// dobra, z rana trochę lepiej myślę i okazało się że serwer "nie umie" też odejmować

11110111111011101111011100101111

  • 01011011101000100000110110001110

    10011100010011001110100110100001 - local, naprawdę
    10000000000000000000000000000000 - server

a tak serio to o so cho ? czemu server nie może wykonać "prostych" działań (albo przynajmniej nie umie tak żeby mnie zadowolić ;P ) ?

0

BCMath :D

Fajna sprawa, tylko od razu nie radze bcpow() na tych liczbach co podales, bo troszku mi kompa zmulilo :D
ale jesli chcesz tylko hash, to np 16 bitowy:
bcpowmod('4882632828', '441522', '65536')

W tym przypadku wyjdzie 0.
Dziala szybko i chyba niezawodnie (przynajmniej ja nie mialem na razie z tym problemow)

0

fajnie, ale ja nie chcę tego potęgować tylko xorować, niefortunnie napisałem
a ^ b

1 użytkowników online, w tym zalogowanych: 0, gości: 1