18-11-2017, 22:33
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]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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):
![[Obrazek: image005-3.png]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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.
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]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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):
- 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,
- Wyniki mnożenia zamieniamy na liczby ósemkowe,
- Zapisujemy je w działaniu pisemnym tak samo jak liczby dziesiętnym, np:
- Kontynuujemy dalej według zasad dodawania liczb ósemkowych.
![[Obrazek: image005-3.png]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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]](http://www.informatyk.edu.pl/wp-content/uploads/2017/04/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.