Algorytm konwersji liczby naturalnej z systemu decymalnego (dziesiętnego) do systemu binarnego (dwójkowego) można opisać następująco: liczbę dziesiętną, którą chcemy przedstawić w systemie dwójkowym, będziemy dzielić przez podstawę systemupodstawa systemupodstawę systemu docelowego (w tym przypadku 2), zapisując zarówno wynik, jak i resztę z dzielenia. Operacje będziemy powtarzać tak długo, dopóki nasza liczba będzie różna od 0. Gdy osiągnie ona wartość 0, algorytm się zakończy.

Pseudokod

Algorytm zapisany w pseudokodzie to:

Linia 1. x znak równości 123. Linia 3. dopóki x zamknij nawias ostrokątny 0 wykonuj. Linia 4. wypisz resztę z dzielenia x przez 2. Linia 5. x znak równości x podzielone całkowicie przez 2.

Teraz wystarczy przepisać uzyskane reszty z dzieleń zaczynając od cyfry wypisanej jako ostatnia.

Lista kroków w praktyce

Przykład

Wykonanie pseudokodu dla liczby x=123.

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

Jeżeli wyliczone reszty z dzielenia po prawej stronie pionowej kreski odczytasz od dołu do góry, otrzymasz  wartość liczby 123Indeks dolny (10) w systemie dwójkowym. Jest to 1111011Indeks dolny (2).

Alternatywny sposób konwersji

Istnieje również inna metoda konwersji liczby naturalnej zapisanej w systemie dziesiętnym do systemu dwójkowego. Wystarczy przedstawić liczbę jako sumę unikalnych potęg liczby 2.

27 10   =   16   +   8   +   2   +   1   =   2 4   +   2 3   +   2 1   +   2 0 =
=   1   ×   2 4   +   1   ×   2 3   +   0   ×   2 2   +   1   ×   2 1   +   1   ×   2 0

Dla powyższego przykładu, uzyskana liczba w systemie binarnym to:

11011 ( 2 )

Zwróć uwagę, że na pozycji 2Indeks górny 2  Indeks górny koniecwidnieje bit o wartości 0, dlatego że ta potęga nie jest wykorzystywana do przedstawienia 27 w systemie binarnym.

Ćwiczenie 1

Spróbuj dokonać konwersji wykorzystując powyższy algorytm. Przekonwertuj liczbę 46Indeks dolny 10 do systemu dwójkowego.

Konwersja części ułamkowej

Istnieje również możliwość dokonania konwersji części ułamkowej liczby z systemu dziesiętnego do dwójkowego. Oto czynności jakie należy wykonać:

  1. Pomnóż część ułamkową liczby dziesiętnej przez 2.

  2. Część całkowita wyniku mnożenia z poprzedniego kroku to kolejny bit liczby dwójkowej (bit dopisywany jest na koniec dotychczasowo przekonwertowanej liczby).

  3. Jeżeli wynik mnożenia jest równy 0 lub uzyskana została wystarczająca dokładność, zakończ algorytm. W przeciwnym wypadku wróć do kroku 1.

Powyższa lista kroków przedstawiona na przykładzie wygląda następująco:

Linia 1. Chcemy dokonać konwersji liczby 0 kropka 44 do systemu dwójkowego kropka. Linia 2. Interesuje nas dokładność do 6 cyfr w części ułamkowej kropka. Linia 4. 0 kropka 44 asterysk 2 znak równości 0 kropka 88 → 0. Linia 5. 0 kropka 88 asterysk 2 znak równości 1 przecinek 76 → 1. Linia 6. 0 kropka 76 asterysk 2 znak równości 1 przecinek 52 → 1. Linia 7. 0 przecinek 52 asterysk 2 znak równości 1 przecinek 04 → 1. Linia 8. 0 kropka 04 asterysk 2 znak równości 0 przecinek 08 → 0. Linia 9. 0 przecinek 08 asterysk 2 znak równości 0 przecinek 16 → 0. Linia 11. Zatem widzimy przecinek że 0 kropka 44 to w przybliżeniu 0 kropka 011100.

Zgodnie z założeniami polecenia, chcieliśmy otrzymać liczbę dwójkową, która będzie mieć 6 bitów w części ułamkowej. Jako że podczas wyliczania otrzymanej liczby 0.011100Indeks dolny (2) nie zakończyliśmy wykonania algorytmu z powodu otrzymania wyniku mnożenia równego 0, jest to przybliżenie liczby 0.44.

Słownik

podstawa systemu
podstawa systemu

wartość określająca, w jakim systemie liczbowym zapisana została liczba; aby wskazać, że liczba 10101110Indeks dolny (2) zapisana została w systemie dwójkowym, dodaje się za nią cyfrę 2 jako indeks dolny, oznaczający podstawę systemu