Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Liczbę dziesiętną na binarną rekursywnie.
Forum PHP.pl > Forum > Przedszkole
cykcykacz
Witam,
nie potrafię sobie poradzić z dość prostym zadaniem mianowicie przeliczyć rekursywnie liczbę dziesiętną na binarną. Robię to w ten sposób tylko wynik jest wyświetlany od drugiej strony.
  1. <?php
  2. function oblicz($liczba)
  3. {
  4. $b=($liczba%2).$b;
  5. echo $b;
  6.  
  7. if($liczba>>=1)
  8. {
  9.  
  10. oblicz($liczba);
  11. }
  12. }
  13.  
  14. oblicz("12");
  15. ?>

Wyświetla mi 0011 a powinno 1100.
Proszę o pomoc lub wskazówki.
darko
Odwróć wynik poprzez
przecież to oczywiste, że dostaniesz liczbę "odwróconą".
cykcykacz
Darko próbowałem tak tylko, że ta funkcja zwraca pojedynczy znak czyli:
0
0
1
1
A funkcja strrev pojedynczego znaku nie odwróci no bo jak? smile.gif
gac3k
to zamiast echo zrób coś takiego

  1. <?php
  2. function oblicz($liczba)
  3. {
  4. $b=($liczba%2).$b;
  5. $liczba = $b;
  6.  
  7. if($liczba>>=1)
  8. {
  9.  
  10. $liczba += oblicz($liczba);
  11. }
  12.  
  13. return strrev($liczba);
  14. }
  15.  
  16. oblicz("12");
  17. ?>


pisałem na szybko, więc nie mam pewności czy zadziała. Ale kombinował bym w tę stronę.
kadlub
  1. <?php
  2. function oblicz($liczba)
  3. {
  4. $b=($liczba%2);
  5. $a.=$b;
  6.  
  7.  
  8. if($liczba>>=1)
  9. {
  10.  
  11. oblicz($liczba);
  12.  
  13. }
  14. echo strrev($a);
  15. }
  16.  
  17. oblicz("8");
  18. ?>
cykcykacz
Dzięki za pomoc bez was było by ciężko rolleyes.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.