• Kurs C++ - strona główna
  • Kurs C++ - kontakt z autorem
  • Kurs C++ - mapa witryny
  • Kurs C++ - prawa autorskie
  • Kurs C++ - Kanał RSS
Informatyka krok po kroku
Użytkownik niezalogowany

Witaj nieznajomy

Reklamy
Randki

Zamiana systemów liczbowych

utworzono: 2005-02-12 zmodyfikowano: 2005-02-12 Autor: mgr inż. Marcin Nabiałek

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

  1. Liczbie wynikowej WYN przypisujemy ciąg pusty, tak, że jej zawartość jest pusta
  2. 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.)
  3. 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
  4. 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.

dodajdo

1 | 2 | 3 | > | |>

Użytkowanie Serwisu oznacza zgodę na wykorzystywanie plików cookie. Szczegółowe informacje