Konwerter systemów liczbowych

Program konwertuje liczby z dowolnego systemu liczbowego na inny dowolny system liczbowy (dostępne systemy od 2 go 20). Działanie konwertera opiera się na dwóch algorytmach - zamiany liczby z dowolnego systemu na system dziesiętny oraz z systemu dziesiętnego na dowolny inny. Połączenie tych dwóch algorytmów daję nam konwerter o w/w funkcjonalności.

Algorytm konwertowania liczb:

Powyższy konwerter wykorzystuje algorytm zamiany liczby z dowolnego systemu liczbowego na system dziesiętny polegający pomnożeniu każdej cyfry liczby źródłowej przez jej wagę, która odpowiada kolejnym potęgom podstawy systemu.
Na przykład jeżeli systemem źródłowym jest system binarny to wagi kolejnych cyfr (licząc od końca liczby) to 1 (20), 2 (21), 4 (22), 8 (23), 16 (24), 32 (25) itd. Liczbę dziesiętną uzyskujemy po dodaniu iloczynów cyfra * waga dla wszystkich cyfr.

Waga 32 (25) 16 (24) 8 (23) 4 (22) 2 (21) 1 (20)
Liczba 1 1 0 1 0 1 -> 1*32 +1*16 +0*8 +1*4 +0*2 +1*1 =53

Drugi wykorzystany algorytm pozwala wykonać zamianę liczby dziesiętnej na liczbę w systemie o innej podstawie np. 16. Polega on na dzieleniu całkowitym liczby dziesiętnej przez podstawę systemu docelowego aż do uzyskania wyniku 0. Na boku spisujemy sobie reszty z kolejnych dzieleń, a liczba w systemie docelowym powstaje po przepisaniu reszt od końca.

Przykład realizacji algorytmu zamiany liczby dziesiętnej na szesnastkową.
DzielenieReszta 
1234 // 16 2^
77 // 16 13(D)|
4 // 16 4|
0

Nasz konwerter jest połączeniem tych dwóch algorytmów najpierw wykonywana jest zamiana liczby z systemu źródłowego na liczbę w systemie dziesiętnym (pierwszy algorytm), a następnie uzyskaną liczbę zamieniamy na system docelowy (drugi algorytm).

Przykładowe implementacje w Pythonie

Wkrótce !