![]() |
![]() ![]() |
![]() |
-_krc_- |
![]()
Post
#1
|
Goście ![]() |
Wierzcie lub nie ale wyswietla mi wynik "FFFFFFFF". Nie mam kompletnie pojecia co jest nie tak.. moze jakies typy zmiennych trzeba ustawiac.. help! ---------- Prosze uzywac [ php ] dla kodu php -- dr_bonzo |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
No i dziala dobrze. Haha, dlaczego? :
Bo max wartosc dla inta to 2mld (dokladnie to 2147483647 -- http://pl.php.net/manual/en/language.types.integer.php) Tworzac inta poprzez $z = 0xFFFFFFFF; przypisujesz mu wartosc -1 (patrz system U2 -- http://pl.wikipedia.org/wiki/Kod_uzupełnień_do_dwóch ), bo int w php jest znakowany -- 32 bity na inta daja ci zakres od -2147483648 do +2147483647. Dla 4mld php skonwertuje inta do floata, ale konwwertujac go recznie do inta otrzymujesz "oczekiwane" -1:
% modulo stosuje sie dla liczb calkowitych, czyli php skonwertuje oba skladniki do integera przed obliczeniem modulo 0xFFFFFFFF --> -1 0x525549DB --> 1381321179 i wykonujesz dzielenie modulo: -1 % 1381321179 iloraz = 0, reszta -1 -1 w zapisie HEX to oczywiscie.... 0xFFFFFFFF ![]() []ckd Nie uzywaj tak wielkich liczb lub uzyj klas obslugujacych wielkie liczby. -------------------- Nie lubię jednorożców.
|
|
|
-Guest- |
![]()
Post
#3
|
Goście ![]() |
dzieki za wyjasnienie, niestety duzych liczb nie moge uzyc, bo w kodzie wystepuje mnozenie ograniczone wynikiem do dworda a przy duzych liczbach juz te wyniki beda inne wiec tutaj jakby wybieram mniejsze zlo i prubuje cos zrobic z tym modulusem...
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Chodzilo mi o cos takiego:
http://pear.php.net/package/Math_Integer "The class Math_Integer can represent integers bigger than the signed longs that are the default of php" Moze pokaz wiekszy kawalek kodu. -------------------- Nie lubię jednorożców.
|
|
|
-Guest- |
![]()
Post
#5
|
Goście ![]() |
ok tutaj jest kawalek kodu w asm (oryginal pisany w delphi):
Kod mov eax, 0FFFFFFFFh mov ebx, 525549DBh xor edx, edx div ebx mov ebx, edx i poprostu chcialem to przetlumaczyc na php (skoro byl pisany w delphi to chyba powinno sie dac):
niestety kodu w delphi nie mam tylko listing w asmie i nie wiem czy delfinek tez dal by mi -1 w takim przypadku.. troche dziwnyy problem ale nie lubie zyc w niewiedzy ![]() wiec mowisz ze nie ma innego wyjscia jak uzycie tej klasy bo ciekaw jestem czy da sie to normalnie rozkminic |
|
|
-_krc_- |
![]()
Post
#6
|
Goście ![]() |
ups sorx za brak tagow zapomnialem o tym, nastepnym raze bedzie ok
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Zarejestruj sie -- temat zostanie przeniesiony do innego dzialu w ktorym nie bedziesz mogl pisac jako gosc.
Przeniesione --> Inne > Komputery i oprogramowanie -------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
ok temat mozna juz przeniesc..
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
Ha!
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.02.2006 Ostrzeżenie: (0%) ![]() ![]() |
ehh
![]() ![]() tez probowalem w ten sposob ale zapomnialem o funkcji floor, dlatego dostawalem caly czas zwykle wyniki, ku mojemu zdziwieniu ![]() dzieki rowniez za link do pear, juz czuje ze sie przyda ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 19:50 |