Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zamiana z 10 na dwojkowy..., Skrypt gubi precyzje...
Widmo
post 23.01.2005, 00:35:42
Post #1





Grupa: Zarejestrowani
Postów: 136
Pomógł: 0
Dołączył: 25.05.2003

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


  1. <? 
  2. $dz = '1476';
  3. $temp = $dz;
  4. $i = '10';
  5.  
  6. do{
  7. $temp = $temp / 2;
  8.  
  9. if ($temp%2)
  10. // Z resztą
  11. { echo '<BR>z resz<BR>'; $dwo = $dwo.'1'; echo $dwo; }
  12. else
  13. //Bez reszty
  14. { echo '<BR>bez resz<BR>'; $dwo = $dwo.'0'; echo $dwo; }
  15. echo '<BR>temp: '.$temp;
  16. echo '<BR>------------------';
  17.  
  18. $i--;
  19. } while($i)
  20. ?>


Wynik tego kodu:

Kod
bez resz
0
temp: 738
------------------
z resz
01
temp: 369
------------------
bez resz
010
temp: 184.5
------------------
bez resz
0100
temp: 92.25
------------------
bez resz
01000
temp: 46.125
------------------
z resz
010001
temp: 23.0625
------------------
z resz
0100011
temp: 11.53125
------------------
z resz
01000111
temp: 5.765625
------------------
bez resz
010001110
temp: 2.8828125
------------------
z resz
0100011101
temp: 1.44140625
------------------


Chce zamienic liczbe 10tna na 2jkowa,
dlatego jezeli liczba dzieli sie bez reszty walimy 0
jak z reszta to 1

teraz daje mi z przecinkami, probowalem dac:

  1. <?php
  2. $temp = $temp / 2;
  3. $temp = sprintf(&#092;"%0.0f\", $temp);
  4.  
  5. if ($temp%2)
  6. ?>


zeby dzielil liczby calkowite, ale wtedy w 3 kroku o jeden gubi precyzje...

Gdzie mam szukac bledu?
a moze jest prostsza metoda...


--------------------
Widmo
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
dr_bonzo
post 23.01.2005, 00:47:16
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


string decbin ( int number)

-=--=-=-=-=-
  1. <?
  2. /**
  3.  * DEC->BIN C0nv3r$ion
  4.  *
  5.  */
  6.  
  7. /**
  8.  * Enter description here...
  9.  *
  10.  * @param integer $iNumber
  11.  */
  12. function dec_to_bin_conversion( $iNumber )
  13. {
  14. $sBin_number = '';
  15.  
  16. while ( $iNumber > 0 )
  17. {
  18. $sBin_number = ( $iNumber % 2 ) . $sBin_number;
  19. $iNumber = floor( $iNumber / 2 );
  20. }
  21.  
  22. return $sBin_number;
  23. }
  24.  
  25. $x = 666;
  26. print( dec_to_bin_conversion( $x ) );
  27. ?>

$iNumber = floor( $iNumber / 2 );

Ten post edytował dr_bonzo 23.01.2005, 00:50:22


--------------------
Nie lubię jednorożców.
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: 14.08.2025 - 00:18