Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> (10) -> (2) i odwrotnie
batman
post
Post #1





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Witam. Nie pisałem dawnom, ponieważ roboty dużo, a czasu mało (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Teraz mam mniej roboty, bo napotkałem przeszkodę.

Do rzeczy. Jak zamieniać liczby z systemu dziesiętnego na dwójkowy i odwrotnie? liczbami tymi są ułamki dziesiętne, więc decbin i bindec nie działa. Nie da się też zamienić osobno liczby całkowitej a potem ułamka, bo bzdury wychodzą. Czy jakaś funkcja, która to zrobi, czy musze pisać skrypt?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




DeyV: niestety nie działa. Dla 2.1 i dla 21 daje taki sam wynik - 10101. Dzięki za zainteresowanie.

Już sobie poradziłem. Nie jest to eleganckie, ale działa (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

  1. <?php
  2.  
  3. $aWynikbin=array();
  4.  
  5. //zamiana na system dwojkowy
  6. $aLiczba=explode('.',"0.6458");
  7.  
  8. while($aLiczba[1]!=0)
  9. {
  10. $ulamek="0.".$aLiczba[1];
  11. $wynik=$ulamek*2;
  12.  
  13. $wynik=(float)$wynik;
  14.  
  15. $aWynik=explode('.',$wynik);
  16.  
  17. if($wynik>=1)
  18. {
  19. $aWynikbin[]=1;
  20. }
  21. else
  22. {
  23. $aWynikbin[]=0;
  24. }
  25. $aLiczba=explode('.',$wynik);
  26.  
  27. if(count($aWynikbin)>10)
  28. {
  29. break;
  30. }
  31. }
  32.  
  33. $wynikbin=implode('',$aWynikbin);
  34. echo $wynikbin.'<br /><br /><br />';
  35.  
  36. //zamiana na system dziesietny
  37. $liczba="010";
  38.  
  39. for($i=0;$i<strlen($liczba);$i++)
  40. {
  41. $wykladnik=$i+1;
  42. $element=substr($liczba,$i,1)*pow(2,-$wykladnik);
  43. $wynikdec=$wynikdec+$element;
  44.  
  45. }
  46. echo $wynikdec;
  47.  
  48. ?>


Ten post edytował batman 19.10.2005, 22:07:35
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: 9.10.2025 - 06:59