Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php]Konwersja
patwoj98
post
Post #1





Grupa: Zarejestrowani
Postów: 218
Pomógł: 16
Dołączył: 6.06.2014
Skąd: Warszawa

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


Witam. Tworzę kalkulator DEC -> HEX.
Mam taki oto kod :

  1. $a=$oblicz;
  2. $b=16;
  3. while($a>0){
  4. $a%=$b;
  5. $s='';
  6. echo"$s";
  7.  
  8. }


jestem bardzo początkujący, więc moglibyście mnie naprowadzić czy coś tu jest dobre ? I co dalej bo sama pętla się nie kończy. Jak ją zamknąć, żeby nie wyskakiwał błąd za długie żądania ?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Petla ci sie nie konczy, bo za kazdym razem w petli robisz to samo i nie zmieniają sie dane warunkowe petli. Stad nieskonczonosc.
Za kazdym razem dzielisz $a prze $b i tyle.... nic sie nie zmienia w kolejnych obrotach petli.

Czemu robisz to na piechote? Dostales takie zadanie w szkole by to robic na piechote? Przeciez w php masz dostepne funkcje ktore robią to wszystko za Ciebie.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
patwoj98
post
Post #3





Grupa: Zarejestrowani
Postów: 218
Pomógł: 16
Dołączył: 6.06.2014
Skąd: Warszawa

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


Właśnie takie zadanie mam i nie mogę się za nie zabrać. Szukam pomocy już kolejny raz smile.gif
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
nie mogę się za nie zabrać
Naprawde nikt ci nie broni.

Cytat
Szukam pomocy już kolejny raz
No wlasnie widze. Ostatnio "walczyles" z systemem binarnym... o ile zrobienie rownie bezsensownego kodu co teraz a potem dostanie gotowca od innej osoby można nazwac "walczeniem"

Dostales podpowiedz. Sprobuj wkoncu trosze pomyslec samodzielnie, skoro to jest praca domowa


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Xart
post
Post #5





Grupa: Zarejestrowani
Postów: 267
Pomógł: 6
Dołączył: 8.04.2013

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


Więc może i ja spróbuję pomóc smile.gif
Ciężko będzie Ci zrobić bezpośrednio kalkulator z DEC -> HEX
Musisz zrobić to pośrednio tzn DEC->BIN->HEX tak będzie o wiele łatwiej

w 1 konwersji wykorzystujesz resztę z dzielenia liczby przez 2 aż do momentu kiedy w ostatnich wierszach pojawi się 0, 1
w 2 konwersji dzielisz liczbę binarną co cztery bity i obliczasz ich wartość a potem zapisujesz z tym, że jak wyjdzie np 10 to A itd...

Po zapisaniu w odpowiedniej kolejności masz gotową liczbę wink.gif

Musisz sam pomyśleć :]
Go to the top of the page
+Quote Post
redeemer
post
Post #6





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


Cytat(Xart @ 25.06.2014, 21:15:40 ) *
Więc może i ja spróbuję pomóc smile.gif
Ciężko będzie Ci zrobić bezpośrednio kalkulator z DEC -> HEX
Musisz zrobić to pośrednio tzn DEC->BIN->HEX tak będzie o wiele łatwiej

w 1 konwersji wykorzystujesz resztę z dzielenia liczby przez 2 aż do momentu kiedy w ostatnich wierszach pojawi się 0, 1
w 2 konwersji dzielisz liczbę binarną co cztery bity i obliczasz ich wartość a potem zapisujesz z tym, że jak wyjdzie np 10 to A itd...

Po zapisaniu w odpowiedniej kolejności masz gotową liczbę wink.gif

Musisz sam pomyśleć :]

To wymyśliłeś ;-) Wystarczy zwykłe dzielenie i modulo (reszta z dzielenia), zupełnie tak jak opisałeś to w punkcie pierwszym.

Do autora: szukałeś w ogóle coś na ten temat w internecie? Jest mnóstwo materiałów na ten temat. Nawet w manualu PHP funkcji dechex napewno znajdziesz gotowce.

Ten post edytował redeemer 25.06.2014, 20:28:45


--------------------
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 Aktualny czas: 22.08.2025 - 06:46