Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek

©2023 mgr Jerzy Wałaszek
I LO w Tarnowie

Konwersje dwójkowo-ósemkowe i dwójkowo-szesnastkowe

SPIS TREŚCI
Podrozdziały

System binarny jest mało czytelny dla człowieka, łatwo się nam w nim pomylić i pogubić. Na przykład dwa ciągi binarne:

1101001001001110100010100010001000101 oraz 1101001001001110100010100110001000101

różnią się tylko jednym bitem. Czy możesz go od razu wskazać?

Programując komputery często mamy do czynienia z wartościami binarnymi. Aby uprościć ich zapis wykorzystuje się dwa systemy zastępcze - ósemkowy oraz szesnastkowy. Wybór tych systemów jest podyktowany tym, iż są one bardziej czytelne dla człowieka od systemu binarnego oraz w bardzo prosty sposób można przeliczać liczby binarne na system ósemkowy i szesnastkowy.

Konwersja dwójkowo - ósemkowa

Liczbę binarną (lub ogólniej dowolny kod binarny) można wyrazić w systemie ósemkowym. Do konwersji niezbędna nam jest poniższa tabelkaa (sugeruję wyuczenie się jej na pamięć), w której wartości cyfr ósemkowych wyrażone są w naturalnym kodzie binarnym.

Tabelka konwersji
dwójkowo ósemkowej
cyfra
ósemkowa
wartość
dwójkowa
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

Zasada konwersji dwójkowo ósemkowej jest następująca. Liczbę binarną (kod binarny) rozdzielamy na grupy 3 bitowe idąc od strony prawej ku lewej. Jeśli w ostatniej grupie jest mniej bitów, to brakujące bity uzupełniamy zerami. Teraz każdą z 3-bitowych grup zastępujemy cyfrą ósemkową zgodnie z tabelką konwersji. W wyniku otrzymujemy liczbę ósemkową o identycznej wartości jak wyjściowa liczba binarna.

Przykład:

Konwertujemy liczbę dwójkową na ósemkową:

1110101000101010111101010101
1  110  101  000  101  010  111  101  010  101

 001   110   101   000   101   010   111   101   010   101 
1 6 5 0 5 2 7 5 2 5
1110101000101010111101010101(2) = 1650527525(8)

Zwrocie uwagę na fakt, iż zapis ósemkowy jest dla nas o wiele bardziej czytelny od zapisu dwójkowego. Ambitnym czytelnikom proponuję sprawdzenie, iż wartości obu liczb są identyczne (można skorzystać z formularzy w poprzednich rozdziałach naszego opracowania).

Konwersja w drugą stronę jest jeszcze prostsza. Każdą cyfrę ósemkową zastępujemy grupą 3 bitów wg tabelki konwersji. Grupy łączymy w jedną liczbę binarną.

Przykład:

Konwertujemy liczbę ósemkową na dwójkową:

7266501472

7 2 6 6 5 0 1 4 7 2
 111   010   110   110   101   000   001   100   111   010 
7266501472(8) = 111010110110101000001100111010(2)
Na początek:  podrozdziału   strony 

Konwersja dwójkowo - szesnastkowa

W podobny sposób do opisanej powyżej konwersji dwójkowo ósemkowej wykonujemy konwersję dwójkowo szesnastkową. Znów potrzebujemy tabelkę konwersji, w której cyfry szesnastkowe są przeliczone na system dwójkowy:

Tabelka konwersji
dwójkowo szesnastkowej
cyfra
szesnastkowa
wartość
dwójkowa
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

Liczbę dwójkową dzielimy na grupy 4-ro bitowe idąc od strony prawej ku lewej. Jeśli w ostatniej grupie jest mniej bitów, to brakujące wypełniamy zerami. Następnie każdą grupę bitów zastępujemy jedną cyfrą szesnastkową zgodnie z tabelką konwersji.

Przykład:

Konwertujemy liczbę dwójkową na szesnastkową:

1110101000101010111101010101
1110  1010  0010  1010  1111  0101  0101

 1110   1010   0010   1010   1111   0101   0101 
E A 2 A F 5 5
1110101000101010111101010101(2) = EA2AF55(16).

Konwersja w drugą stronę jest następująca:

Każdą cyfrę szesnastkową zastępujemy grupą 4 bitów wg tabelki konwersji. Grupy łączymy w całość otrzymując odpowiednik dwójkowy wyjściowej liczby szesnastkowej.

Przykład:

Konwertujemy liczbę szesnastkową na dwójkową:

3FAC72608D

3 F A C 7 2 6 0 8 D
 0011   1111   1010   1100   0111   0010   0110   0000   1000   1101 
3FAC72608D(16) = 11111110101100011100100110000010001101(2)

Zapis szesnastkowy w pewnym sensie jest lepszy od ósemkowego, ponieważ lepiej pasuje do opisu zawartości komórek pamięci komputera. Komórka pamięci jest 8-bitowa, zatem jej zawartość przekłada się zawsze na dwucyfrową liczbę szesnastkową (w zapisie ósemkowym są to 3 cyfry, z których najstarsza może przyjąć jedynie wartości od 0 do 3).

Na początek:  podrozdziału   strony 

Zadania

Zadanie 1 (łatwe)

Zamień podane liczby binarne na ich odpowiedniki w systemie ósemkowym:

11110000(2) (8)  

.

10101010(2) (8)  

.

1111101111011101101(2) (8)  

.

Zadanie 2 (łatwe)

Zamień podane liczby ósemkowe na ich odpowiedniki w systemie dwójkowym - pomiń zera nieznaczące:

7057(8) (2)  

.

543210(8) (2)  

.

3750142(8) (2)  

.

Zadanie 3 (łatwe)

Zamień podane liczby binarne na ich odpowiedniki w systemie szesnastkowym. Cyfry szesnastkowe wpisz dużymi literami.

110111011(2) (16)  

.

1011011101(2) (16)  

.

1011010111101010111(2) (16)  

.

Zadanie 4 (łatwe)

Zamień podane liczby szesnastkowe na ich odpowiedniki w systemie binarnym - pomiń zera nieznaczące:

1F45(16) (2)  

.

DCBA(16) (2)  

.

5A87CD4F(16) (2)  

.

Zadanie 5 (łatwe)

Zaproponuj szybki sposób konwersji ósemkowo szesnastkowych.

Zadanie 6 (średnie)

Zaprojektuj metodę konwersji czwórkowo dwójkowych.

Zadanie 7 (trudne)

Uzasadnij poprawność opisanych metod konwersji ósemkowo-szesnastkowo-dwójkowych.

Na początek:  podrozdziału   strony 

Zobacz dalej...

Kody binarne | Naturalny system dwójkowy | Dwójkowy system stałoprzecinkowy | Operacje arytmetyczne w systemie dwójkowym | Operacje logiczne na bitach


Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2023 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: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.