Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor artykułu: mgr Jerzy Wałaszek

©2019 mgr Jerzy Wałaszek
I LO w Tarnowie

obrazek

Kody binarne

SPIS TREŚCI

Co to jest kod binarny?

Komputery przetwarzają informacje zakodowane w postaci bitów. Powodów jest kilka, oto kilka z nich:

W informatyce bity oznaczamy tradycyjnie cyframi 0 i 1. Oczywiście wewnątrz komputera nie ma żadnych zer i jedynek. Komputery są urządzeniami elektronicznymi i reagują na poziomy napięć, np.:

0 – napięcie niskie, 0...0,8V
1 – napięcie wysokie, 2,4...5V

A co z napięciami 0,8...2,4V? Jest to tzw. pasmo zabronione, które oddziela napięcia rozróżniane jako stan 0 i stan 1 bitu. Pasmo takie musi istnieć, aby bit był reprezentowany jednoznacznie – zastanów się na tym.

Kod binarny, kod dwójkowy (ang. binary code) jest systemem kodowania informacji za pomocą bitów. Komputery przetwarzają informację w porcjach, grupach bitów. Najczęściej grupy te liczą 8, 16, 32, 64 bity.

Grupę 8 bitów nazywamy bajtem (ang. byte). Zajmijmy się przez chwilę bajtami.

W metodach numerycznych najbardziej interesują nas liczby, dlatego zobaczmy, jak można kodować liczby za pomocą bitów. Wiedza ta nie jest niezbędna, lecz pozwala zrozumieć własności liczb, którymi operują komputery w obliczeniach.

Zapiszmy bity w bajcie symbolicznie przy użyciu literki b, która oznacza jeden ze stanów bitu, 0 lub 1:

bbbbbbbb

W takiej postaci zapisu trudno nam rozróżniać poszczególne bity. Dlatego ponumerujemy je od strony prawej do lewej (dlaczego właśnie tak? A czemu nie? Wyjaśni się to później):

b7b6b5b4b3b2b1b0

Teraz możemy się odwoływać jednoznacznie do każdego bitu w bajcie:

b0 – bit najmniej znaczący (ang. LSB, the least significant bit)
b7 – bit najbardziej znaczący (ang. MSB, the most significant bit)

Załóżmy, że nasz bajt bitowo wygląda następująco:

11011001

Po rozkładzie na poszczególne bity, otrzymujemy:

b7 = 1
b6 = 1
b5 = 0
b4 = 1
b3 = 1
b2 = 0
b1 = 0
b0 = 1

Aby otrzymać z tych bitów kod binarny, musimy wymyślić funkcję, która przeprowadza wartości bitów w bajcie w liczbę. Takich funkcji może być dowolnie wiele. Na przykład możemy powiedzieć tak:

W bajcie może być co najwyżej jeden bit o stanie 1, wszystkie pozostałe muszą mieć stan 0. Wartość bajtu jest równa numerowi pozycji bitu 1 zwiększonemu o 1. Jeśli w bajcie nie ma bitu o stanie 1, to wartość wynosi 0.

Otrzymujemy w ten sposób tzw. kod 1 z 8:

Kod Wartość
00000000 0
00000001 1
00000010 2
00000100 3
00001000 4
00010000 5
00100000 6
01000000 7
10000000 8

Kod ten nie nadaje się za dobrze do wykonywania obliczeń, lecz nam chodzi tutaj o zrozumienie idei kodu binarnego. Podsumowując, kod binarny jest po prostu odwzorowaniem bitów w informację, którą chcemy zakodować. 8-bitowy kod 1 z 8 pozwala zakodować liczby od 0 do 8. Odwzorowanie jest jednoznaczne, tzn. jedno słowo kodu ma zawsze jedną możliwą wartość i każda kodowana wartość ma zawsze tylko jedno słowo kodowe.

Czy można stworzyć kod niejednoznaczny? Oczywiście, na przykład tak:

Wartość bajtu jest równa liczbie bitów o stanie 1.
Kod Wartość
00000000 0
00000001,00000010,00000100 ... 10000000 1
00000011,00000101,00001001 ... 11000000 2
00000111,00001011,00010011 ... 11100000 3
00001111,00010111,00100111 ... 11110000 4
00011111 ... 11111000 5
00111111 ... 11111100 6
01111111 ... 11111110 7
11111111 8

W tym kodzie tylko dwa kody są jednoznaczne: 00000000 = 0 oraz 11111111 = 8. Wszystkie pozostałe wartości posiadają wiele reprezentacji (np. wartość 1 ma 8 różnych słów kodowych), zatem nie ma tutaj jednoznaczności.

W następnych podrozdziałach zajmiemy się praktycznymi kodami binarnymi. Jeśli chcesz poszerzyć swoją wiedzę na temat kodów binarnych, zapoznaj się z podanymi poniżej artykułami:

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2019 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.