Zamiana systemów liczbowych
W informatyce dość często wykorzystuje się konwersję systemów liczbowych. Przede wszystkim dane są przechowywane w komputerze w postaci dwójkowej, czyli już na poziomie pracy komputera prawie wszystko jest zamieniane z systemu dziesiętnego, wygodnego dla człowieka na system dwójkowy i na odwrót.
Dobra znajomość systemów liczbowych może ponadto zoptymalizować sposób przechowywania czy przesyłania danych, co w niektórych wypadkach może być nie bez znaczenia.
W tym artykule zajmiemy się prostym sposobem zamiany liczby w systemie dziesiętnym na liczbę w innym systemie liczbowym. Dodatkowo dla uproszczenia założymy, że zamiany będziemy dokonywać jedynie dla liczb naturalnych (wykluczamy liczby zmiennopozycyjne, czyli ułamki).
Sprecyzujmy warunki algorytmu:
Dane: liczba LICZ - prawidłowa liczba naturalna w systemie dziesiętnym oraz
system liczbowy Q, do którego będziemy dokonywać konwersji
Wynik: liczba WYN powstała w wyniku zapisania liczby LICZ w systemie liczbowym Q
Algorytm w postaci listy kroków
- Liczbie wynikowej WYN przypisujemy ciąg pusty, tak, że jej zawartość jest pusta
- Jeśli Q>10, to dla każdej z liczb od 10 do Q-1 (włącznie) wprowadzamy specjalne oznaczenie (zwyczajowo przyjmuje się 10=A, 11=B, 12=C, 13=D itd.)
-
Dopóki liczba LICZ jest różna od 0 wykonujemy:
- Zmiennej pomocniczej POM przypisujemy resztę z dzielenia LICZ/Q
- Jeśli POM<10, to do liczby wynikowej WYN dopisujemy cyfrę POM
- Jeśli natomiast POM>=10, to do liczby wynikowej WYN dopisujemy jako cyfrę ten symbol, który odpowiada liczbie POM
- LICZ przypisujemy część całkowitą z ilorazu LICZ/Q
- Odwracamy kolejność cyfr w liczbie WYN i kończymy algorytm. Liczba wynikowa to liczba WYN.
Sam algorytm może nie jest taki trudny, jednak może zastanawiać, dlaczego algorytm wygląda tak a nie inaczej. Postaram się go dokładnie omówić i rozwiać wszystkie wątpliwości.