modulo, modulo |
modulo, modulo |
-_krc_- |
17.02.2006, 17:34:06
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 |
|
|
17.02.2006, 18:14:14
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- |
17.02.2006, 18:41:43
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...
|
|
|
17.02.2006, 18:45:18
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- |
17.02.2006, 19:10:34
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_- |
17.02.2006, 19:11:47
Post
#6
|
Goście |
ups sorx za brak tagow zapomnialem o tym, nastepnym raze bedzie ok
|
|
|
17.02.2006, 20:22:29
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.
|
|
|
17.02.2006, 20:47:28
Post
#8
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.02.2006 Ostrzeżenie: (0%) |
ok temat mozna juz przeniesc..
|
|
|
18.02.2006, 01:14:16
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.
|
|
|
18.02.2006, 08:59:52
Post
#10
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 17.02.2006 Ostrzeżenie: (0%) |
ehh od dzisiaj jestes moim osobistym guru
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 |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 10:01 |