Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JS->PHP] Przepisana funkcja nie działa w PHP, Operacje na bitach
robson_admin
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 10.09.2005

Ostrzeżenie: (0%)
-----


Witam,

Przepisałem funkcje z JS do PHP i niestety zwraca mi całkowicie inne wyniki, a co lepsze na każdym serwerze wyniki te są zupełnie inne. Natomiast funkcja w JS na każdym komputerze działa prawidłowo. Wydaje mi się, że nigdzie nie zrobiłem literówki. Potrzebuję otrzymać takie same wyniki w PHP jak w JS.

Proszę o pomoc (IMG:style_emoticons/default/smile.gif)
Z góry dzięki;)


//Problem rozwiązany Proszę zamknąć
// Proponowane rozwiązanie niestety się nie sprawdziło

Ten post edytował robson_admin 4.08.2011, 10:22:02
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Jest tu kilka potencjalnych problemów:
1. Deweloperzy PHP dali dupy i długość typu INT jest zmienna, 64 bity na maszynie 64 bitowej i 32 bity na 32 bitowej, stąd przy wszelkich operacjach na bitach dobrze jest rozróżnić na jakiej platformie się pracuje.
2. Na 32 bitowej maszynie INT w PHP ma zakres -2147483648 - 2147483647. Wpisanie 4523419682 powoduje, że liczba ta będzie traktowana nie jako INT, a FLOAT.

Rozwiązaniem będzie skorzystanie z GMP.
Go to the top of the page
+Quote Post
robson_admin
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 10.09.2005

Ostrzeżenie: (0%)
-----


Cytat(Crozin @ 3.08.2011, 12:09:56 ) *
Jest tu kilka potencjalnych problemów:
1. Deweloperzy PHP dali dupy i długość typu INT jest zmienna, 64 bity na maszynie 64 bitowej i 32 bity na 32 bitowej, stąd przy wszelkich operacjach na bitach dobrze jest rozróżnić na jakiej platformie się pracuje.
2. Na 32 bitowej maszynie INT w PHP ma zakres -2147483648 - 2147483647. Wpisanie 4523419682 powoduje, że liczba ta będzie traktowana nie jako INT, a FLOAT.

Rozwiązaniem będzie skorzystanie z GMP.



  1. var_dump(4523419682) // int(4523419682)

Wychodzi na to że mam 64 bitowy system. Może jakoś na tym systemie da się to zrobić?

Niestety nie mam w kompilowanej obsługi GMP...
  1. Fatal error: Call to undefined function gmp_add() ...


Ten post edytował robson_admin 3.08.2011, 13:38:57
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 10.10.2025 - 15:30