Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: signed na unsigned i na odwrót
Forum PHP.pl > Forum > PHP
nospor
Mamy powiedzmy liczbę: -774905816
chcemy ją zamienic na unsigned z zachowaniem wartosci. Uzyjemy wiec do tego
sprintf("%u", -774905816);
w rezultacie otrzymamy: 3520061480

Jak mając liczbę 3520061480 wrócić do jest oryginału czyli: -774905816
Normalnie mam zaćmę.
wookieb
  1. echo sprintf('%d', 3520061480);
nospor
wiesz czemu zalozylem ten temat? Bo tak wlasnie robilem jak pokazales... no, prawie tak jak pokazales:
  1. $x = sprintf("%u", -774905816);
  2. echo $x; //3520061480
  3. echo sprintf('%d', $x); //2147483647, a przecież $x wynosi wlasnie 3520061480
  4. echo sprintf('%d', 3520061480); //-774905816

Sugestie mile widziane smile.gif
wookieb
  1. echo sprintf('%d', (float)$x);

Nie powiem Ci dokładnie dlaczego tak jest bo nie pamiętam całej teorii.
nospor
Ta.... już wiem. moj $x był konwertowany do int a liczba 3520061480 przekracza int wiec dostawalem 2147483647
Zas liczba 3520061480 miesci się w float i jawna konwersja na float dziala.

Dzieki
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.