[PHP] Poradzić sobie z jego signed int

Odpowiedz Nowy wątek
2006-07-23 00:33
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 ) ?


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-07-23 12:14
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)


SOA (Standartowa Odpowiedz Administratora):
"Dziwne... a u mnie dziala"
:D <font color="white">

Pozostało 580 znaków

2006-07-23 13:55
0

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


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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