Algorytm konwersji

0

Witam !

Piszę w języku PHP i też szukam algorytmu pod ten język. Nie znalazłem na google żadnych pod PHP, jedynie na C++ i C#, a to mnie nie interesuje. Mianowicie, potrzebuję algorytm (nie komendę), który mi przeprowadzi konwersję z dziesiętnego na szesnastkowy i odwrotnie. Mógłby ktoś napisać lub wytłumaczyć jak napisać ?

1

Tak się dzieje dla tego że nie wymyślono jeszcze żadnego "algorytmu pod PHP".
Obejrzyj przykłady w C++ i C# po niewielkich zmianach będzie działać.

2

Ale żadnego algorytmu przecież nie potrzeba. Liczby w komputerze są zapisane binarnie i ma znaczenie tylko to jak je wypiszesz.
Anyway jest to raczej trywialna transformacja:
dla systemu dziesiętnego idąc od końca liczby każda cyfra określa ile razy trzeba pomnożyć 10i gdzie i oznacza numer cyfry. Tzn:
123 = 3 * 100 + 2101 + 1102
dla systemu szesnastkowego (i każdego innego też) jest identycznie, tzn heksadecymalne 123 to
hex 123 = 3160 + 2 * 161 + 1 * 162 = 291 decymalnie
I taki jest też algorytm przeliczania hex -> dec
Przeliczanie w drugą stronę odwraca ten proces, tzn musisz dzielić przez kolejne potęgi 16 zaczynając od najwyższej mniejszej od danej liczby.
Dla 291 najwyższa potęga mniejsza od tej liczby to 162 (czyli 256) bo 163 to już 4096 więc za dużo. Więc robimy:
291/162 = 1
291 - 1
162 = 35
35/161 = 2
35 - 2161 = 3
3/160 = 3
3-3
160 = 0 więc kończymy obliczenia

1 użytkowników online, w tym zalogowanych: 0, gości: 1