Jason. Cała informatyka w jednym miejscu!

Kłopoty przy systemie oktalnym? Po tym artykule (mam nadzieję) będziecie mieli podstawowy zakres w kierunku konwertowania liczb dziesiętnych na ósemkowe i na odwrót. System dziesiętny na ósemkowy i odwrotnie, oto poradnik jak to wykonywać w obie strony. Jeśli interesujecie się systemem dwójkowym, to klikajcie tutaj lub tutaj, jeśli szesnastkowym.

SYSTEM ÓSEMKOWY. KRÓTKIE OMÓWIENIE

System oktalny charakteryzuje się podstawą równą osiem i przyjmuje wartości 0-7. Choć jest on rzadziej wykorzystywany niż dwójkowy omówiony wczoraj, to nadal warto ten system opanować. Linux na ten przykład ustala uprawnienia do plików przy pomocy polecenia "chmod", który on z kolei przybiera postać liczby w systemie oktalnym (np. 755). Naturalnie, że to nie może brzmieć przekonująco, aby tylko z tego powodu rozgrzebywać cały temat. Możliwe że fakt, iż pojawia się on na kartkówkach pobudzi do działania. W językach programowania liczbę oktalną tworzycie dodając na początku przedrostek "0" (zero). Tak wygląda postępowanie jak zamienić system dziesiętny na ósemkowy.

SYSTEM DZIESIĘTNY NA ÓSEMKOWY. METODY KONWERSJI

Klasyczny schemat. Otrzymujemy liczbę dziesiętną, na przykład:

82

i mamy za zadanie przerobić ją na system oktalny. I znów mamy dwie drogi do wyboru:

SYSTEM DZIESIĘTNY NA ÓSEMKOWY - METODA 1

Pierwszą opcją jest dzielenie liczby dziesiętnej przez 8 i wyciągnięcie reszty z dzielenia mogącej przyjąć wartości od 0 do 7. Wszystko prezentuje się w postaci tabelki i dwóch kolumn, gdzie po lewej stronie mamy "kroki" dzielenia liczby dziesiętnej, a po prawej mamy reszty z dzielenia. Licząc przy użyciu kalkulatora pamiętajcie, że 1/8 = 12,5% = 0,125.

LICZBA DZIESIĘTNA RESZTA Z DZIELENIA
82 / 8 = 10,25 2
10 / 8 = 1,25 2
1 / 8 = 0,125 1

Przy spisywaniu zmierzamy od dołu do góry, tak jak miało to miejsce przy systemie dwójkowym. Dzielimy od góry, a reszty z dzielenia spisujemy od dołu. Czyli mamy 82(dec) = 122(oct).

SYSTEM DZIESIĘTNY NA ÓSEMKOWY - METODA 2

Drugą z możliwości jest zastosowanie innego podejścia liczenia polegające na przypisywaniu mianownika równego potędze liczby 8, która "spada" o jedną potęgę co krok, aż do potęgi zero (co w efekcie da jedynkę). Wynik całkowity staje się cyfrą ósemkową, a resztę z dzielenia przypisujemy do licznika w następnym dzieleniu. Wybaczcie pokrętne napisanie, ale nie byłem w stanie tego inaczej określić. Schemat postępowania jest następujący:

Najpierw ustalamy która największa potęga liczby 8 "zmieści się" w liczbie dziesiętnej. Przy liczbie 82 będzie to 64, zatem 82. Piszemy obok:

82 = 64

Następnie wykonujemy działanie ilorazu i po każdym dzieleniu "obniżamy" mianownik o jedną potęgę w dół, aż do zera. W pierwszym kroku bierzemy za licznik naszą liczbę dziesiętną:

82 / 82 = 82 / 64 = 1 reszty 18

Teraz "obniżamy" w mianowniku jedną potęgę liczby 8, zatem będziemy dzielić przez osiem (skoro zamieniamy system dziesiętny na ósemkowy, nie powinno dziwić że dzielimy właśnie przez osiem ;)). Za licznik natomiast podstawiamy naszą obecną resztę z dzielenia:

18 / 8 = 2 reszty 2

Przenosimy resztę z poprzedniego dzielenia do aktualnego "kroku", a mianownik "cofamy" do mniejszej potęgi (80). Wykonując ostatni krok otrzymujemy:

2 / 1 = 2 reszty 0

Czyli też mamy 122(oct). Tutaj wyjątkowo spisujemy normalnie od góry do samego dołu. Całość w postaci tabelki wygląda następująco:

DZIELENIE WYNIK
82 / 64 1 r 18
18 / 8 2 r 2
2 / 1 2 r 0

Do wyboru, do koloru. Drogi są dwie, aby prawidłowo skonwertować system dziesiętny na ósemkowy...

METODA KONWERSJI W DRUGĄ STRONĘ

Teraz rozwiązanie problemu co jeśli zamieniamy system ósemkowy na dziesiętny. Jedyną rozsądną metodą konwersji systemu ósemkowego na dziesiętny jest pobranie każdej cyfry systemu ósemkowego i przemnożenie jej przez 8 do potęgi zależnej od "miejsca położenia" cyfry od prawej strony. Czyli mając liczbę:

747

rozkładamy to w następujący sposób:

747(oct) = 7*82 + 4*81 + 7*80 = 7*64 + 4*8 + 7 = 448 + 32 + 7 = 487

Wynika stąd, że 747(oct) to 487(dec).


Po takich wyjaśnieniach nie powinno być żadnych wątpliwości w rozumieniu tego wątku.

PODOBNE ARTYKUŁY