Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2024 mgr Jerzy Wałaszek |
Liczby dwójkowe są dobrym rozwiązaniem dla komputerów, jednak dla ludzi są mało czytelne, znajdź różnicę:
1111011101011010101010110001 i 1111011101010101010010110001
Aby ułatwić sobie pracę z liczbami dwójkowymi, stosuje się inne systemy liczbowe, które są dla nas bardziej czytelne, a jednocześnie pozwalają na szybkie konwersje na system dwójkowy i odwrotnie.
Takim systemem jest system ósemkowy, zwany również oktalnym (ang. octal numeral system). Jeśli opanowałeś lekcję o systemach pozycyjnych, to system ósemkowy powinien być dla ciebie zrozumiały.
System ósemkowy ma podstawę p = 8 oraz stosuje 8 cyfr:
Wartość liczby ósemkowej obliczamy wg poznanych zasad: mnożymy wagi pozycji przez wartości cyfr znajdujących się na nich i otrzymane iloczyny sumujemy. Wagi pozycji są kolejnymi potęgami podstawy, czyli liczby 8:
wagi |
512 |
64 |
8 |
1 |
83 |
82 |
81 |
80 |
|
cyfry: |
7 |
5 |
0 |
4 |
pozycje: |
3 |
2 |
1 |
0 |
7504(8) = 512×7 + 64×5 + 1×4 = 3584 + 320 + 4 = 3908(10)
Zwróć uwagę, iż podstawa systemu ósemkowego jest potęgą podstawy systemu dwójkowego:
8 = 23
Dzięki tej właściwości zamiana liczby dwójkowej w ósemkową i na odwrót jest niezwykle prosta. Musisz jedynie nauczyć się na pamięć wartości cyfr ósemkowych w systemie dwójkowym. Każdą cyfrę przedstawiamy trzema bitami:
OCT | BIN |
0 |
000 |
1 |
001 |
2 |
010 |
3 |
011 |
4 |
100 |
5 |
101 |
6 |
110 |
7 |
111 |
Dlaczego akurat 3 bity? Można to uzasadnić na
podstawie wzorów obliczania wartości liczb pozycyjnych, ale nie chcę cię
zamęczać matematyką, zauważ jednak, że ma to coś wspólnego z
Aby zamienić liczbę dwójkową, postępujemy następująco:
Dla przykładu zamienimy w system ósemkowy dwie liczby dwójkowe z początku rozdziału:
L1 = 1111011101011010101010110001(2)
Rozdzielamy liczbę na grupy 3 bitowe poczynając od ostatniego bitu.
001 111 011 101 011 010 101 010 110 001
W ostatniej grupie brakło dwóch cyfr. Dopisujemy dwa bity 0 (nie zmienia to wartości grupy).
Grupy zamieniamy na cyfry ósemkowe zgodnie z tabelką:
001
|
111 |
011 |
101 |
011 |
010 |
101 |
010 |
110 |
001 |
1 |
7 |
3 |
5 |
3 |
2 |
5 |
2 |
6 |
1 |
L1 = 1735325261(8)
L2 = 1111011101010101010010110001(2)
L2 =
|
001
|
111 |
011 |
101 |
010 |
101 |
010 |
010 |
110 |
001 |
1 |
7 |
3 |
5 |
2 |
5 |
2 |
2 |
6 |
1 |
L2 = 1735252261(8)
Mamy obie liczby przeliczone na system ósemkowy, teraz można je łatwo porównać:
1735325261(8) i 1735252261(8)
Liczby są różne.
Zamiana z systemu ósemkowego na dwójkowy jest równie prosta: wykonujemy operację odwrotną - każdą cyfrę ósemkową zastępujemy trzema bitami zgodnie z tabelką.
L = 4530271555(8)
L = |
4 |
5 |
3 |
0 |
2 |
7 |
1 |
5 |
5 |
5 |
100 |
101 |
011 |
000 |
010 |
111 |
001 |
101 |
101 |
101 |
L = 100101011000010111001101101101(2)
Jeden bajt to 8 bitów. Bajty są ważne, ponieważ komputer zapamiętuje je w swojej pamięci: komórka pamięci komputera ma pojemność 8 bitów, dlatego przetwarzaną przez komputer informację dzieli się na bajty. Jeśli chcemy przedstawić w systemie ósemkowym zawartość komórki pamięci, to dostaniemy w wyniku 3 cyfry ósemkowe:
Bajt | |||||||
b7
|
b6
|
b5
|
b4
|
b3
|
b2
|
b1
|
b0
|
c2
|
c1
|
c0
|
|||||
Cyfry ósemkowe |
Zwróć uwagę, iż podział nie jest równy. Cyfra c2 obejmuje 2 bity, a pozostałe cyfry obejmują po 3 bity. Z tego powodu informatycy częściej posługują się systemem szesnastkowym przy kodowaniu liczb dwójkowych.
System szesnastkowy ma podstawę p = 16. Do zapisu liczb potrzebujemy 16 cyfr. Pierwsze dziesięć wzięto z systemu dziesiętnego, a brakujące 6 zastąpiono początkowymi literami alfabetu A...F (lub a...f):
0, 1, 2, 3, 4 ,5 ,6, 7, 8, 9, A, B, C, D, E, F
Wartości cyfr szesnastkowych (HEX) są następujące:
HEX | DEC |
0 |
0 |
1 |
1 |
2 |
2 |
3 |
3 |
4 |
4 |
5 |
5 |
6 |
6 |
7 |
7 |
8 |
8 |
9 |
9 |
A |
10 |
B |
11 |
C |
12 |
D |
13 |
E |
14 |
F |
15 |
Podstawa 16 jest potęgą podstawy 2: 16 = 24. Możemy zatem zastępować cyfry szesnastkowe 4 bitami o wartości zastępowanej cyfry. Naucz się tabelki przeliczeniowej:
HEX | BIN |
0 |
0000 |
1 |
0001 |
2 |
0010 |
3 |
0011 |
4 |
0100 |
5 |
0101 |
6 |
0110 |
7 |
0111 |
8 |
1000 |
9 |
1001 |
A |
1010 |
B |
1011 |
C |
1100 |
D |
1101 |
E |
1110 |
F |
1111 |
System szesnastkowy ładnie pokrywa bajty i ich wielokrotności. Konwersję szesnastkowo dwójkową wykonujemy dokładnie tak samo, jak z systemem ósemkowym, tylko teraz cyfrą szesnastkową kodujemy 4 bity liczby dwójkowej.
L = 11011001011100112
L = |
1101 |
1001 |
0111 |
0011 |
D |
9 |
7 |
3 |
11011001011100112 = D97316
W drugą stronę postępujemy odwrotnie:
L = FEA7B01516
L = |
F |
E |
A |
7 |
B |
0 |
1 |
5 |
1111 |
1110 |
1010 |
0111 |
1011 |
0000 |
0001 |
0101 |
FEA7B01516 = 111111101010011110110000000101012
Zastanów się, jak szybko przekształcić liczbę ósemkową w szesnastkową lub odwrotnie.
Jak rozpoznać liczbę ujemną w 8-bitowym kodzie U2 zapisanym szesnastkowo?
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.