Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Liczenie na hexach / duze liczby
Forum PHP.pl > Forum > PHP
Pooligans
Witam, mam nastepujacy problem. Mam strone na ktorej user podaje 3 liczby hex w inpucie a nastepnie wysyla formularzem do skryptu. Przyklad:

w inpucie ktos podaje dane:

1 - 45eaff18
2 - 1ee312c2
3 - 2c0e299b

skrypt wykonuje:
1+2*3

$Dec_Info1 = HexDec($Information1);
$Dec_Info2 = HexDec($Information2);
$Dec_Info3 = HexDec($Information3);
$Hex_ID = dechex($Dec_Info1 + $Dec_Info2 * $Dec_Info3);

Wynik tej operacji w php to B6046C80, a w rzeczywistosci powinien byc 0xE wiekszy czyli B6046C8E.

Czy php nie jest sobie w stanie poradzic z tak duzymi liczbami? Prosze o pomoc bo nie mam zielonego pojecia jak sobie z tym poradzic, jezeli ktos poda mi gotowe rozwiazanie, obiecuje ze zostanie wynagrodzony adekwatnie do zadania. Pozdrawiam
Kicok
PHP duże liczby konwertuje na float, a co za tym idzie traci się trochę dokładności. Będziesz musiał użyć rozszerzenia GMP" title="Zobacz w manualu PHP" target="_manual, np.:

  1. <?php
  2.  
  3. $hex1 = '45EAFF18';
  4. $hex2 = '1EE312C2';
  5. $hex3 = '2C0E299B';
  6.  
  7. $val1 = gmp_init( "0x{$hex1}" );
  8. $val2 = gmp_init( "0x{$hex2}" );
  9. $val3 = gmp_init( "0x{$hex3}" );
  10.  
  11.  
  12. $hexID = gmp_add( $val1, gmp_mul( $val2, $val3 ) );
  13.  
  14.  
  15. echo strtoupper( gmp_strval( $hexID, 16 ) );
  16.  
  17. ?>
Pooligans
Niestety mam tylko zwykly hosting i nie moge instalowac zadnego oprogramowania sad.gif
legorek
Troszkę pomyślunku. Zastanów się jak wykonujesz takie obliczenie na kartce (np algorytmem dodawania "w słupku") Potem zaimplementuj to w PHP.
Pooligans
Nie bede marnowal czasu na cos co powinno wykonac php. Najwieksza zagadka dlaczego to nie dziala?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.