Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Liczbę dziesiętną na binarną rekursywnie.
cykcykacz
post 22.05.2011, 19:24:05
Post #1





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

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


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.
Powód edycji: [Ociu]: Poprawiłem bbCode
Go to the top of the page
+Quote Post
darko
post 22.05.2011, 19:44:12
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Odwróć wynik poprzez
przecież to oczywiste, że dostaniesz liczbę "odwróconą".


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
cykcykacz
post 22.05.2011, 19:53:59
Post #3





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

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


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
Go to the top of the page
+Quote Post
gac3k
post 22.05.2011, 20:02:43
Post #4





Grupa: Zarejestrowani
Postów: 90
Pomógł: 8
Dołączył: 28.07.2009

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


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ę.
Go to the top of the page
+Quote Post
kadlub
post 22.05.2011, 20:15:33
Post #5





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


  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. ?>
Go to the top of the page
+Quote Post
cykcykacz
post 22.05.2011, 20:22:43
Post #6





Grupa: Zarejestrowani
Postów: 550
Pomógł: 9
Dołączył: 29.05.2009
Skąd: Ostrów Wielkopolski

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


Dzięki za pomoc bez was było by ciężko rolleyes.gif .
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.06.2025 - 10:54