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

©2026 mgr Jerzy Wałaszek

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\dots0{,}8V\)
\(1\) – napięcie wysokie, \(2{,}4\dots 5V\)

A co z napięciami \(0{,}8\dots2{,}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):

\[
b_7b_6b_5b_4b_3b_2b_1b_0
\]

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

\(b_0\) – bit najmniej znaczący (ang. LSB, the least significant bit)
\(b_7\) – 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:

\[
\begin{array}{l}
b_7 = 1 \\
b_6 = 1 \\
b_5 = 0 \\
b_4 = 1 \\
b_3 = 1 \\
b_2 = 0 \\
b_1 = 0 \\
b_0 = 1
\end{array}
\]

Aby otrzymać z 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 = \(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\text{ z }8:}\)

Kod Wartość
\(00000000\) \(0\)
\(0000000\class{t}{1}\) \(1\)
\(000000\class{t}{1}0\) \(2\)
\(00000\class{t}{1}00\) \(3\)
\(0000\class{t}{1}000\) \(4\)
\(000\class{t}{1}0000\) \(5\)
\(00\class{t}{1}00000\) \(6\)
\(0\class{t}{1}000000\) \(7\)
\(\class{t}{1}0000000\) \(8\)

Kod ten nie nadaje się za dobrze do wykonywania obliczeń, lecz nam chodzi tutaj o zrozumienie samej idei kodu binarnego. Podsumowując, kod binarny jest po prostu odwzorowaniem bitów w informację, którą chcemy zakodować. \({8{-}\text{bitowy}}\) kod \({1\text{ 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\).
Kody Wartość
\(00000000\) \(0\)
\(0000000\class{t}{1},000000\class{t}{1}0,00000\class{t}{1}00\dots\class{t}{1}0000000\) \(1\)
\(000000\class{t}{11},00000\class{t}{1}0\class{t}{1},0000\class{t}{1}00\class{t}{1}\dots\class{t}{11}000000\) \(2\)
\(00000\class{t}{111},0000\class{t}{1}0\class{t}{11},000\class{t}{1}00\class{t}{11}\dots\class{t}{111}00000\) \(3\)
\(0000\class{t}{1111},000\class{t}{1}0\class{t}{111},00\class{t}{1}00\class{t}{111}\dots\class{t}{1111}0000\) \(4\)
\(000\class{t}{11111}\dots\class{t}{11111}000\) \(5\)
\(00\class{t}{111111}\dots\class{t}{111111}00\) \(6\)
\(0\class{t}{1111111}\dots\class{t}{1111111}0\) \(7\)
\(\class{t}{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:


do podrozdziału  do strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

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