Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> signed na unsigned i na odwrót
nospor
post 29.09.2010, 18:33:23
Post #1





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wookieb
post 29.09.2010, 18:45:49
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. echo sprintf('%d', 3520061480);


--------------------
Go to the top of the page
+Quote Post
nospor
post 29.09.2010, 18:54:08
Post #3





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
wookieb
post 29.09.2010, 18:56:33
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




  1. echo sprintf('%d', (float)$x);

Nie powiem Ci dokładnie dlaczego tak jest bo nie pamiętam całej teorii.


--------------------
Go to the top of the page
+Quote Post
nospor
post 29.09.2010, 18:58:23
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 04:58