Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Dziesiętna na binarną.
Forum PHP.pl > Forum > Przedszkole
patwoj98
Witam.
Programuję dziś skrypt, który ma wpisaną liczbę zmienić z dziesiętnej na binarną. Podobno proste zadanie. Jednak utknąłem.
Poniżej daje skrypt:
  1. <?php
  2. echo "</br>";
  3. while($oblicz>1){
  4. $reszta=$oblicz%2;
  5. echo "$reszta";
  6. }
  7.  
  8.  
  9. ?>


Czego w nim brakuje, aby dobrze działał ? Zmienna jest tutaj liczbą, którą użytkownik wpisuje. Skrypt się nie ładuje na stronie. Trwa minutowe ładowanie i w końcu wyskakuje przekroczenie czasu oczekiwania.
Pyton_000
Nie dziękuj: http://www.php.net/manual/en/function.decbin.php
patwoj98
Z tego korzystałem, ale potrzebuję zrobić wersję z algorytmem. Ewentualnie można mi rozpisać algo na to: )
PrinceOfPersia
  1. $zmienna = 100; // WEJSCIE
  2.  
  3. // dokonujac przesuniecia bitowego w petli w prawo, liczymy ile bitow ma liczba (np. reprezentacja 5 bedzie miala 3 bity, bo 5 dziesietnie= 101 binarnie)
  4. for ($ileBitow=0, $a = $zmienna; $a; $a>>=1)
  5. $ileBitow++;
  6.  
  7. $s = ''; // WYJSCIE
  8.  
  9. // DLA ($bit = jedynka przesunieta bitowo w lewo o $ileBitow-1; powtarzaj dopoki $bit ; po kazdej iteracji przesun $bit w prawo)
  10. for ($bit = 1<<$ileBitow-1; $bit; $bit>>=1) {
  11. $s .= ($zmienna & $bit)?'1':'0'; // bitowa operacja AND
  12. }
  13.  
  14. echo $s;
  15.  


czyli w skrocie:


  1. $zmienna = 100;
  2.  
  3. for ($ileBitow=0, $a = $zmienna; $a; $a>>=1)
  4. $ileBitow++;
  5.  
  6. $s = '';
  7. for ($bit = 1<<$ileBitow-1; $bit; $bit>>=1) {
  8. $s .= ($zmienna & $bit)?'1':'0';
  9. }
  10. echo $s;
  11.  


smile.gif
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.