R15S63STLLP36
Grafika przedstawia namalowane kredkami cyfry w różnych kolorach oraz różnej wielkości.

I_P_W14_M06_C++ Systemy liczbowe

Źródło: Gerald, dostępny w internecie: pixabay.com, domena publiczna.

Jak już wiesz, w systemie pozycyjnym, w zależności od jego podstawy, masz do dyspozycji ustalony zbiór cyfr. Na przykład jeżeli korzystasz z systemu piątkowego, możesz używać cyfr: 0, 1, 2, 3, 4. System dziesiętny to cyfry: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, natomiast system dwójkowy (binarny) to jedynie 0 oraz 1.

Ważne!

Liczby w systemie innym niż dziesiętny zapisujemy z indeksem dolnym, który jest równy podstawie systemu. Oto przykład liczby zapisanej w systemie binarnym (dwójkowym):

1011001(2)

Konwersja liczby całkowitej zapisanej w systemie dziesiętnym na inny system

Każdą liczbę można wyrazić w wielu systemach. Jeżeli chcesz zamienić liczbę o danej podstawie na liczbę w innym systemie, musisz dokonać konwersji. Jeżeli chcesz wykonać konwersję z systemu dziesiętnego na inny, możesz zrobić to na dwa sposoby.

I sposób

Załóżmy, że chcemy zamienić liczbę 119Indeks dolny (Indeks dolny 10)  Indeks dolny koniec na liczbę w systemie trójkowym. Spójrz na poniższą tabelę przedstawiającą kolejne potęgi liczby 3.

3Indeks górny 0

3Indeks górny 1

3Indeks górny 2

3Indeks górny 3

3Indeks górny 4

3Indeks górny 5

3Indeks górny 6

1

3

9

27

81

243

729

Sprawdźmy, jaka największa możliwa wielokrotność docelowej podstawy liczby jest mniejsza lub równa 119Indeks dolny (Indeks dolny 10).  Indeks dolny koniec Jest to liczba 81, czyli 3Indeks górny 4. Daje to informację, że docelowa liczba zapisana w systemie trójkowym będzie składała się z pięciu cyfr. Następnie obliczmy, ile razy liczba 81 mieści się w 119. Może mieścić się maksymalnie dwa razy, ponieważ system trójkowy składa się z cyfr 0, 1, 2. Tak w tej chwili wygląda nasza liczba o podstawie 3:

R17SS7RBAVB1B
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Kolejnym etapem jest odjęcie przekonwertowanej już części.

11981=38

Spójrz na tabelę zawierającą potęgi liczby 3 i sprawdź, czy 3Indeks górny 3 jest mniejsze lub równe od pozostałej części do przekształcenia. Widzimy, że 27 < 38 – teraz policzmy, ile razy zmieścimy 27 w 38. Będzie to wartość kolejnej cyfry, teraz już na pozycji xIndeks dolny 3.

R7LNPG49H7D71
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Ponownie odejmujemy:

3827=11

Patrzymy na tabelę i pozycję numer dwa: 3Indeks górny 2  Indeks górny koniec jest mniejsze (lub równe) od 11. W liczbie 11 mieści się jeden raz. Na pozycji xIndeks dolny 2 wstawiamy ponownie liczbę 1.

RTX21X1DM34F3
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Odejmujemy:

119=2

Spójrz na tabelę. Czy 3Indeks górny 1 jest mniejsze lub równe 2? Nie jest i dlatego na pozycji xIndeks dolny 1  Indeks dolny koniec umieszczamy cyfrę 0.

RV2N73LR3NRNF
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

W tym przypadku nie musimy już nic odejmować, więc sprawdźmy ostatnią wielokrotność liczby 3, czyli 3Indeks górny 0. Czy 1 jest mniejsze lub równe 2? Tak, jest mniejsze. Ile razy się mieści? Mieści się 2 razy. W takim razie na pozycji xIndeks dolny 0  Indeks dolny koniec umieszczamy cyfrę 2. W taki sposób dokonaliśmy konwersji liczby 119Indeks dolny (10)  Indeks dolny koniec i otrzymaliśmy 11102Indeks dolny (Indeks dolny 3).

R1CSC8X5RP1NG
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

II sposób

Możemy również dokonać konwersji w inny sposób: obliczamy iloraz i resztę z dzielenia rIndeks dolny 0  Indeks dolny koniecliczby X przez podstawę systemu docelowego beta. Następnie obliczony poprzednio iloraz ponownie dzielimy przez podstawę beta – otrzymujemy w ten sposób kolejny iloraz i resztę z dzielenia rIndeks dolny 1. Wykonujemy powyższy krok aż uzyskamy iloraz równy 0. Uzyskane reszty z dzielenia, czytane w odwrotnej kolejności, dadzą nam liczbę w systemie o wybranej podstawie beta. Zamieńmy ponownie liczbę  119Indeks dolny (10) na liczbę w systemie trójkowym, tym razem według drugiego sposobu. Konwersję przedstawia poniższa grafika.

R1SES5QFEURQ1
Źródło: Contentplus.pl Sp. z o.o., licencja: CC BY-SA 3.0.

Odczytując uzyskane cyfry w odwrotnej kolejności, otrzymujemy liczbę 11102Indeks dolny (3). Jak widać, uzyskany wynik zgadza się z wynikiem konwersji przeprowadzonej według pierwszego schematu.

Dokładniejszy opis II sposobu znajdziesz w kolejnej części materiału.

Konwersja na system dziesiętny

Aby wykonać konwersję z dowolnego systemu na dziesiętny, przyda nam się wzór na wartość liczby. Zamieńmy liczbę 11102Indeks dolny (3) na liczbę o podstawie 10. Tutaj znowu może przydać nam się tabela przedstawiająca wielokrotności liczby 3.

1·34+1·33+1·32+0·31+1·30=81+27+9+2=119

Wynikiem jest liczba, którą wcześniej zamienialiśmy na liczbę o podstawie 3. Teraz wykonywaliśmy działanie odwrotne – otrzymaliśmy ten sam wynik, co oznacza, że wszystkie obliczenia zostały wykonane prawidłowo.

Słownik

waga pozycji
waga pozycji

całkowita potęga podstawy, gdzie wykładnik to numer pozycji cyfry

wartość liczby
wartość liczby

suma wartości cyfr pomnożonych przez odpowiadające im wagi

konwersja
konwersja

zamiana liczby z jednego systemu na inny

system pozycyjny
system pozycyjny

system, w którym znaczenie ma pozycja zapisywanych cyfr; każdej z nich odpowiada waga (zależna od miejsca zajmowanego przez cyfrę i od podstawy systemu)