Programowanie i algorytmy

System ósemkowy

powrót

Inna nazwa systemu ósemkowego: oktalny. W tym systemie używanych jest osiem cyfr:

{tex}0,1,2,3,4,5,6,7{/tex}

W niektórych sytuacjach w informatyce używa się właśnie tego systemu. Na przykład w systemie Linux prawa do pliku dla danego obiektu ustawiane są wykorzystując dokładnie jedną cyfrę z przedziału {tex}0-7{/tex}.

Zamiana na dziesiętny

W systemie ósemkowym podstawą jest liczba 8. Do zamiany z ósemkowego na dziesiętny wykorzystujemy ten sam algorytm jak w przypadku zamiany z dwójkowego na dziesiętny.

Dla przykładu zamieńmy liczbę {tex}3452{/tex} na dziesiętny:

{tex}(3452)_8=3\cdot 8^3+4\cdot 8^2+5\cdot 8^1+2\cdot 8^0={/tex}

{tex}3\cdot 512+4\cdot 64+5\cdot 8+2\cdot 1 = 1834{/tex}

Zamiana z dziesiętnego na ósemkowy

Postępujemy analogicznie jak przy zamianie z dziesiętnego na dwójkowy, z tą różnicą, że w pierwszej kolumnie wykonujemy dzielenie całkowite przez 8 a w drugiej wyznaczamy resztę z dzielenia przez 8, Czynności te wykonujemy do momentu otrzymania 0. Poniżej zamienimy liczbę {tex}1834{/tex} na liczbę zapisaną w systemie dwójkowy:

dziesiętny na ósemkowy

 Następnie wynik spisujemy od końca z drugiej kolumny tabeli:

{tex}1834=(3452)_8{/tex}

Z ósemkowego na dwójkowy

Ponieważ {tex}8=2^3{/tex}, oznacza to, że każda cyfra w systemie ósemkowym odpowiada dokładnie trzem cyfrom systemu dwójkowego:

ósemkowy na dwójkowy

Teraz wystarczy każdą cyfrę z systemu ósemkowego podmienić na trzy cyfry binarne - wiodące zera opuszczamy, np.

{tex}(175)_8=(1\ 111\ 101)_2{/tex}

Z dwójkowego na ósemkowy

Podobna sytuacja ma się przy konwersji z dwójkowego na ósemkowy. Postępujemy następująco: dzielimy na partie po trzy bity (patrząc od prawej), następnie zamieniamy je na cyfry w systemie ósemkowym, na przykład: 

{tex}(10 110 101 001)_2=(2651)_8{/tex}