Zamiana liczby dziesiętnej na binarną.

Zamiana liczby dziesiętnej na binarną.

Wątek przeniesiony 2014-06-09 09:32 z PHP przez dzek69.

P9
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdynia
  • Postów: 43
0

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:

Kopiuj
<?php
echo "</br>";
while($oblicz>1){
$reszta=$oblicz%2;
echo "$reszta";
}


?> 

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.
Chcę, aby to było metodą algorytmu w PHP, dlatego też jeżeli komuś się nie chce poprawiać chętnie zobaczę algorytm :)

lhp
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 49
1

widocznie udało Ci się stworzyć nieskończoną pętlę,

pytanie po co chcesz zamieniać liczbę na binarną, jeśli tylko po to żeby ją wyświetlić skorzystaj z sprintf(...), pamiętaj tylko że sprintf zwraca typ string

Kopiuj
$num = 10;
$bin = sprintf('%b', $num);
echo $bin; //1010
echo "\n";
echo gettype($bin); //string
szalonyfacet
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Dąbrowa Górnicza
1

petla while dziala dopoki zmienna oblicz jest wieksza od zera i tak tez robi, a ze zmienna oblicz sie nie zmienna to skrypt dziala dopoki nie zostaje ubity przez serwere limitu czasu zadania, co nastepuje w twoim przypadku.

P9
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdynia
  • Postów: 43
0

Ok, w takim razie jak zamknąć pętlę ? Możecie podrzucić domknięcie ?

Skrypt robię w celach ćwiczeniowych.

Sopelek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 467
2

Musisz dzielić $oblicz przez 2 z każdym obrotem pętli.

P9
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdynia
  • Postów: 43
0
Sopelek napisał(a):

Musisz dzielić $oblicz przez 2 z każdym obrotem pętli.

A mógłbyś podrzucić wzór skryptu ?

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0
patwoj98 napisał(a):
Sopelek napisał(a):

Musisz dzielić $oblicz przez 2 z każdym obrotem pętli.

A mógłbyś podrzucić wzór skryptu ?

A którego słowa nie rozumiesz?

P9
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gdynia
  • Postów: 43
0

Mam już to ogarnięte. Dzięki wszystkim za chęci. Temat do zamknięcia.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.