Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Operowanie na int wiekszych niz PHP_INT_MAX
enki
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.06.2012

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


Witam wszystkich.

Dostalem ostatnio zadanie do wykonania w ktorym musze przekonwertowac liczby w hex np 0x10000000000000 na int, dodac je razem i zwrocic wartosc w hex. Nie znam sie na PHP i zdziwiony jestem, ze nie moge nic znalezc konkretnie w Google oprocz uzycia bcadd albo podobnych, ktore wyprobowalem i raczej nie dzialaja albo robie cos zle.

Generalnie potrzebuje dodac np. 99999999999999999999999999999999999 + 5555555555555555555555555555555555 i pozniej przekonwertowac to na hex.

Prosilbym o jakas podpowiedz czy sa jakies moduly, ktore umozliwia mi zrobienie tego jak np. w Perlu bigint, ktory pozwala znacznie zwiekszyc wartosc.
Chcialbym dodac, ze predkosc nie gra roli.

Ten post edytował enki 15.06.2012, 23:50:30
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
enki
post
Post #2





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 15.06.2012

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


z 87687687677777777800099008 wychodzi 48889712f33a3000000000 , a potrzebuje dokladna wartosc

Znalazlem cos takiego, sprobuje to zrozumiec (IMG:style_emoticons/default/smile.gif) :

  1. function gmp_hexdec($n) {
  2. $gmp = gmp_init(0);
  3. $mult = gmp_init(1);
  4. for ($i=strlen($n)-1;$i>=0;$i--,$mult=gmp_mul($mult, 16)) {
  5. $gmp = gmp_add($gmp, gmp_mul($mult, hexdec($n[$i])));
  6. }
  7. return $gmp;
  8. }
  9.  
  10. print gmp_strval(gmp_hexdec("D5CE3E462533364B"));
  11.  


Ten post edytował enki 16.06.2012, 02:56:08
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: 15.09.2025 - 10:12