• 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Systemy liczbowe: system ósemkowy.
#1
Systemy liczbowe

SYSTEM ÓSEMKOWY
 

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.

[Obrazek: image001-3.png]
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.

[Obrazek: Przechwytywanie-1.png]

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.

[Obrazek: image002-2.png]
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.

[Obrazek: image003-4.png]

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.

[Obrazek: image004-1.png]

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.
[Obrazek: image005-3.png]

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.

[Obrazek: image006-1.png]

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.
  Odpowiedz


Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Silnik forum: MyBB, © 2002-2024 MyBB Group.
Edited & Optimized by Majstersztyk
Copyright © 2024 Informatyk.edu.pl