Systemy liczbowe: system ósemkowy

article-thumbnail

Wstęp

System ósemkowy, inaczej oktalny również jest spotykany w informatyce, lecz rzadziej niż system szesnastkowy (heksadecymalny). Głównie możemy go zauważyć między innymi podczas przypisywania uprawnień w dystrybucjach Linux oraz w językach programowania C, C++, Java, Perl oraz PHP.

system-osemkowy-linux

Wynik polecenia stat wpisanego w terminalu Linux Ubuntu 14.04.

Konwersja w systemie ósemkowym

Aby dokonać konwersję możemy skorzystać z dwóch sposobów. Pierwszy z nich to konwersja na system binarny, podział na sekcje zawierający po 3 bity a następnie obliczenie wartości oktadecymalnych danych 3 bitów. Poniżej tabela zamiany 3 bitowych liczb binarnych na ósemkowe.

system-osemkowy-konwersja

Za przykład dajmy sobie liczbę 23D.

1) Zamieniamy na binarny:
23D = 10111B
2) Dzielimy na sekcje zawierający:
10 | 111
3) Zmieniamy sekcję:
2 | 7
4) Gotowe!:
27O

Jednak szybszym sposobem zamiany liczb dziesiętnych na ósemkowe jest dokonania dzielenia podobnego do dzielenia które wykonywaliśmy wcześniej w systemie binarnym.

27O to reszta z dzielenia liczb 23 oraz 2 przez 8.

Konwersję systemu ósemkowego na dziesiętny również możemy przeprowadzić na dwa sposoby: za pomocą zamiany z systemu ósemkowego na binarny i następnie zamiany z binarnego na dziesiętny.

27O = 110111D = 23D

Lub wykonując mnożenie kolejnych potęg cyfry osiem z kolejnymi rzędami.

27O = 2 * 81 + 7 * 80 = 23D

Działania na liczbach ósemkowych

Również w systemie ósemkowym, jak w każdym systemie liczbowym występują działania na liczbach. Dalej postaram się omówić operacje na liczbach ósemkowych w celach edukacyjnych. Jednak nie jest to konieczna wiedza, a raczej już ciekawostka.

Dodawanie

Dokonujemy je zwykle za pomocą działania pisemnego. W poniższym przykładzie dodamy liczbę 2O do 27O. System przesunięcia nadmiaru działa podobnie jak w systemie binarnym dając 1 tego systemu liczbowego. Przedstawiłem tutaj po lewej dodawanie w systemie ósemkowym, po prawej w systemie binarnym.

system-osemkowy-dodawanie

Przy tym należy pamiętać że system nadmiaru działa tylko wtedy, kiedy suma poszczególnych cyfr przekracza cyfrę 7.

Odejmowanie

Odejmujemy również za pomocą działania pisemnego. W poniższym przykładzie odejmiemy 15O od 23O. Również tutaj pożyczka działa podobnie jak w systemie binarnym. Przedstawiłem tutaj po lewej odejmowanie w systemie oktadecymalnym, po prawej w systemie binarnym.

system-osemkowy-odejmowanie

Mnożenie

Schemat mnożenia  jest podobny do mnożenia pisemnego dziesiętnego, jednak występowanie 8 cyfr (zamiast 10) wymaga zastosowania niżej opisanego systemu zilustrowanym poniższym przykładem (mnożenie 24 O * 5 O = 144O):

  1. Mnożymy dziesiętnie (nie ma konieczności wcześniej zamiany liczby) każdy człon liczby mnożonej przez każdy człon mnożnika,
  2. Wyniki mnożenia zamieniamy na liczby ósemkowe,
  3. Zapisujemy je w działaniu pisemnym tak samo jak liczby dziesiętnym, np:
  4. Kontynuujemy dalej według zasad dodawania liczb ósemkowych.

Dzielenie

Dzielenie w systemie ósemkowym jest również podobne do dzielenia w systemie pisemnym dziesiętnym. W poniższym przykładzie dzielimy liczbę 337O przez 15O. Wynikiem dzielenia jest liczba 21O z resztą 2O.

system-osemkowy-dzielenie

Warto tutaj zauważyć, że nie wolno mnożyć centralnie 15O*2D, gdyż wyjdzie nam 30O, różne od przekonwertowanych wartości (powyżej po prawej) i pomnożonych przez 2D, czyli 32O. Wynik wyjdzie błędny o 1 oraz o resztę większą o 5.

Kwestia konwersji

Pamiętaj zawsze, że lepiej przekonwertować poszczególne części dzielenia, mnożenia, z liczb oktadecymalnych na dziesiętne, wykonanie potrzebnych działań oraz ponowną konwersję i wykonanie dodawania lub odejmowania. W przeciwnym wypadku, wynik wyjdzie błędny ze względu na błąd powstały pomiędzy różnicami w ilości cyfr danego systemu liczbowego.