Deszyfrowanie kodu binarnego. Kod binarny. Konwersja liczby binarnej na dziesiętną

💖 Podoba Ci się? Udostępnij link swoim znajomym

Znaczenie terminu „binarny” polega na tym, że składa się on z dwóch części lub komponentów. Zatem kody binarne to kody składające się tylko z dwóch stanów symbolicznych, takich jak czarny lub biały, jasny lub ciemny, przewodnik lub izolator. Kod binarny w technologii cyfrowej to sposób reprezentowania danych (liczb, słów i innych) jako kombinacji dwóch znaków, które można oznaczyć jako 0 i 1. Znaki lub jednostki BC nazywane są bitami. Jednym z uzasadnień stosowania BC jest prostota i niezawodność przechowywania informacji na dowolnym nośniku w postaci kombinacji zaledwie dwóch jej stanów fizycznych, na przykład w postaci zmiany lub stałości strumienia świetlnego podczas odczyt z optycznego dysku kodowego.
Istnieją różne możliwości kodowania informacji.

Kod binarny

W technologii cyfrowej metoda przedstawiania danych (liczb, słów i innych) jako kombinacji dwóch znaków, które można oznaczyć jako 0 i 1. Znaki lub jednostki DC nazywane są bitami.

Jednym z uzasadnień stosowania DC jest prostota i niezawodność przechowywania informacji na dowolnym nośniku w postaci kombinacji zaledwie dwóch jej stanów fizycznych, np. w postaci zmiany lub stałości strumienia magnetycznego w danej komórki magnetycznego nośnika zapisu.

Największa liczba, którą można wyrazić binarnie, zależy od liczby użytych cyfr, tj. na liczbę bitów w kombinacji wyrażającej liczbę. Przykładowo, aby wyrazić wartości liczbowe od 0 do 7, wystarczy mieć kod 3-cyfrowy lub 3-bitowy:

wartość numeryczna kod binarny
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

Z tego widzimy, że dla liczby większej niż 7 z kodem 3-cyfrowym nie ma już kombinacji kodów 0 i 1.

Przechodząc od liczb do wielkości fizycznych, sformułujmy powyższe stwierdzenie w bardziej ogólnej formie: zależy od największej liczby wartości m dowolnej wielkości (temperatura, napięcie, prąd itp.), które można wyrazić w kodzie binarnym na liczbę użytych bitów n jako m= 2n. Jeśli n=3, jak w rozważanym przykładzie, to otrzymamy 8 wartości, łącznie z wiodącym 0.
Kod binarny to kod wieloetapowy. Oznacza to, że podczas przechodzenia z jednej pozycji (wartości) do drugiej kilka bitów może się zmieniać jednocześnie. Na przykład liczba 3 w kodzie binarnym = 011. Liczba 4 w kodzie binarnym = 100. Odpowiednio, przy przejściu z 3 do 4, wszystkie 3 bity jednocześnie zmieniają swój stan na przeciwny. Odczytanie takiego kodu z dysku z kodem prowadziłoby do tego, że ze względu na nieuniknione odchylenia (tolerancje) podczas produkcji dysku z kodem, zmiana informacji z każdej ścieżki z osobna nigdy nie nastąpi jednocześnie. To z kolei prowadziłoby do tego, że przy przechodzeniu z jednego numeru na drugi przez chwilę podawana byłaby błędna informacja. Zatem podczas wspomnianego przejścia z liczby 3 na liczbę 4 bardzo prawdopodobne jest krótkotrwałe wyjście liczby 7, gdy np. Najbardziej znaczący bit podczas przejścia zmienił swoją wartość nieco wcześniej niż reszta . Aby tego uniknąć, stosuje się tzw. kod jednoetapowy, np. tzw. Gray Code.

Szary kod

Kod Graya to tzw. kod jednoetapowy, tj. Podczas przechodzenia z jednego numeru na drugi zmienia się zawsze tylko jeden fragment informacji. Błąd podczas odczytu informacji z mechanicznego dysku kodowego podczas przechodzenia z jednego numeru na drugi doprowadzi jedynie do tego, że przejście z jednego położenia do drugiego będzie tylko nieznacznie przesunięte w czasie, ale wydanie całkowicie nieprawidłowej wartości położenia kątowego przy przechodzenie z jednej pozycji do drugiej jest całkowicie wyeliminowane.
Kolejną zaletą Gray Code jest jego zdolność do odzwierciedlania informacji. Zatem odwracając najbardziej znaczący bit, można po prostu zmienić kierunek zliczania i tym samym dopasować się do rzeczywistego (fizycznego) kierunku obrotu osi. Zmianę kierunku zliczania w ten sposób można łatwo zmienić sterując wejściem tzw. „Uzupełnianie”. Wartość wyjściowa może zatem rosnąć lub maleć dla tego samego fizycznego kierunku obrotu osi.
Ponieważ informacje wyrażone w Gray Code mają charakter wyłącznie zakodowany i nie zawierają rzeczywistych informacji liczbowych, przed dalszym przetwarzaniem należy je najpierw przekształcić w standardowy kod binarny. Odbywa się to za pomocą konwertera kodu (dekodera Gray-Binar), który na szczęście można łatwo zaimplementować za pomocą obwodu elementów logicznych wyłącznych lub (XOR), zarówno programowo, jak i sprzętowo.

Odpowiednie liczby dziesiętne z zakresu od 0 do 15 do kodów binarnych i Graya

Kodowanie binarne Kodowanie szare
Kod dziesiętny
Wartość binarna Szesnaście oznaczający Kod dziesiętny Wartość binarna Szesnaście oznaczający
0 0000 0 godz 0 0000 0 godz
1 0001 1 godz 1 0001 1 godz
2 0010 2 godz 3 0011 3 godz
3 0011 3 godz 2 0010 2 godz
4 0100 4h 6 0110 6 godz
5 0101 5 godz 7 0111 7 godz
6 0110 6 godz 5 0101 5 godz
7 0111 7 godz 4 0100 4h
8 1000 8h 12 1100 Ch
9 1001 9h 13 1101 Dh
10 1010 Ach 15 1111 Fh
11 1011 Bh 14 1110 Ech
12 1100 Ch 10 1010 Ach
13 1101 Dh 11 1011 Bh
14 1110 Ech 9 1001 9h
15 1111 Fh 8 1000 8h

Konwersję kodu Graya na zwykły kod binarny można wykonać za pomocą prostego obwodu z falownikami i bramkami wyłącznymi lub, jak pokazano poniżej:

Kod Gray-Nadmiar

Zwykły jednoetapowy kod Graya jest odpowiedni dla rozdzielczości, które można przedstawić jako liczbę podniesioną do potęgi 2. W przypadkach, gdy konieczne jest wdrożenie innych uprawnień, środkowa część jest wycinana ze zwykłego kodu Graya i używana. W ten sposób kod pozostaje „jednoetapowy”. Jednakże zakres liczbowy nie zaczyna się od zera, ale jest przesuwany o określoną wartość. Podczas przetwarzania informacji od wygenerowanego sygnału odejmuje się połowę różnicy między rozdzielczością pierwotną a zmniejszoną. Rozdzielczości takie jak 360? do wyrażenia kąta są często realizowane tą metodą. Zatem 9-bitowy kod Graya równy 512 krokom, przycięty po obu stronach o 76 kroków, będzie równy 360°.

Kod binarny reprezentuje tekst, instrukcje procesora komputera lub inne dane przy użyciu dowolnego systemu dwuznakowego. Najczęściej jest to system zer i jedynek, który przypisuje wzór cyfr binarnych (bitów) do każdego symbolu i instrukcji. Na przykład ciąg binarny złożony z ośmiu bitów może reprezentować dowolną z 256 możliwych wartości i dlatego może generować wiele różnych elementów. Recenzje kodu binarnego światowej społeczności zawodowej programistów wskazują, że jest to podstawa zawodu i główne prawo funkcjonowania systemów komputerowych i urządzeń elektronicznych.

Odszyfrowanie kodu binarnego

W informatyce i telekomunikacji kody binarne są używane do różnych metod kodowania znaków danych na ciągi bitów. Metody te mogą używać ciągów o stałej lub zmiennej szerokości. Istnieje wiele zestawów znaków i kodowań do konwersji na kod binarny. W kodzie o stałej szerokości każda litera, cyfra lub inny znak jest reprezentowany przez ciąg bitów o tej samej długości. Ten ciąg bitów, interpretowany jako liczba binarna, jest zwykle wyświetlany w tablicach kodów w notacji ósemkowej, dziesiętnej lub szesnastkowej.

Dekodowanie binarne: ciąg bitów interpretowany jako liczba binarna może zostać przekonwertowany na liczbę dziesiętną. Na przykład mała litera a, jeśli jest reprezentowana przez ciąg bitów 01100001 (jak w standardowym kodzie ASCII), może być również przedstawiona jako liczba dziesiętna 97. Konwersja kodu binarnego na tekst przebiega w ten sam sposób, tylko w odwrotnej kolejności.

Jak to działa

Z czego składa się kod binarny? Kod stosowany w komputerach cyfrowych opiera się na tym, że możliwe są tylko dwa stany: włączony. i wyłączone, zwykle oznaczane przez zero i jeden. Podczas gdy w systemie dziesiętnym, który wykorzystuje 10 cyfr, każda pozycja jest wielokrotnością 10 (100, 1000 itd.), w systemie dwójkowym każda pozycja cyfry jest wielokrotnością 2 (4, 8, 16 itd.) . Sygnał kodu binarnego to seria impulsów elektrycznych reprezentujących liczby, symbole i operacje do wykonania.

Urządzenie zwane zegarem wysyła regularne impulsy, a elementy takie jak tranzystory są włączane (1) lub wyłączane (0), aby przesyłać lub blokować impulsy. W kodzie binarnym każda liczba dziesiętna (0–9) jest reprezentowana przez zestaw czterech cyfr lub bitów binarnych. Cztery podstawowe operacje arytmetyczne (dodawanie, odejmowanie, mnożenie i dzielenie) można sprowadzić do kombinacji podstawowych operacji algebraicznych Boole'a na liczbach binarnych.

Bit w teorii komunikacji i informacji jest jednostką danych równoważną wynikowi wyboru pomiędzy dwiema możliwymi alternatywami w systemie liczb binarnych powszechnie używanym w komputerach cyfrowych.

Recenzje kodu binarnego

Natura kodu i danych jest podstawową częścią podstawowego świata IT. Z narzędzia tego korzystają specjaliści światowego IT „od kuchni” – programiści, których specjalizacja ukryta jest przed uwagą przeciętnego użytkownika. Recenzje kodu binarnego od programistów wskazują, że obszar ten wymaga głębokiego przestudiowania podstaw matematycznych i szerokiej praktyki w zakresie analizy matematycznej i programowania.

Kod binarny to najprostsza forma kodu komputerowego lub danych programowych. Jest on w całości reprezentowany przez system cyfr binarnych. Według recenzji kodu binarnego często jest on kojarzony z kodem maszynowym, ponieważ zestawy binarne można łączyć w celu utworzenia kodu źródłowego interpretowanego przez komputer lub inny sprzęt. Jest to częściowo prawdą. używa zestawów cyfr binarnych do tworzenia instrukcji.

Oprócz najbardziej podstawowej formy kodu plik binarny reprezentuje także najmniejszą ilość danych przepływających przez wszystkie złożone, kompleksowe systemy sprzętu i oprogramowania przetwarzające współczesne zasoby i zasoby danych. Najmniejsza ilość danych nazywana jest bitem. Bieżące ciągi bitów stają się kodem lub danymi interpretowanymi przez komputer.

Liczba binarna

W matematyce i elektronice cyfrowej liczba binarna to liczba wyrażona w systemie liczbowym o podstawie 2 lub binarnym systemie liczbowym, który wykorzystuje tylko dwa znaki: 0 (zero) i 1 (jeden).

System liczbowy o podstawie 2 to zapis pozycyjny o promieniu 2. Każda cyfra nazywana jest bitem. Ze względu na prostą implementację w cyfrowych obwodach elektronicznych przy użyciu reguł logicznych, system binarny jest używany przez prawie wszystkie współczesne komputery i urządzenia elektroniczne.

Fabuła

Współczesny system liczb binarnych jako podstawa kodu binarnego został wynaleziony przez Gottfrieda Leibniza w 1679 roku i przedstawiony w jego artykule „Poradnik arytmetyki binarnej”. Liczby binarne były kluczowe dla teologii Leibniza. Uważał, że liczby binarne symbolizują chrześcijańską ideę kreatywności ex nihilo, czyli stworzenia z niczego. Leibniz próbował znaleźć system, który przekształciłby werbalne stwierdzenia logiczne w dane czysto matematyczne.

Systemy binarne poprzedzające Leibniza istniały także w świecie starożytnym. Przykładem jest chiński system binarny I Ching, w którym tekst wróżbiarski opiera się na dualności yin i yang. W Azji i Afryce do kodowania wiadomości używano bębnów szczelinowych z tonami binarnymi. Indyjski uczony Pingala (około V wieku p.n.e.) w swoim dziele Chandashutrema opracował system binarny do opisu prozodii.

Mieszkańcy wyspy Mangareva w Polinezji Francuskiej do 1450 roku używali hybrydowego systemu dwójkowo-dziesiętnego. W XI wieku naukowiec i filozof Shao Yong opracował metodę porządkowania heksagramów odpowiadającą sekwencji od 0 do 63 przedstawionej w formacie binarnym, gdzie yin to 0, a yang to 1. Porządek ten jest także porządkiem leksykograficznym w bloki elementów wybranych z dwuelementowego zestawu.

Nowy czas

W 1605 r. omawiał system, w którym litery alfabetu można było zredukować do sekwencji cyfr binarnych, które można następnie zakodować jako subtelne odmiany czcionki w dowolnym losowym tekście. Warto zauważyć, że to Francis Bacon uzupełnił ogólną teorię kodowania binarnego obserwacją, że metodę tę można zastosować w przypadku dowolnych obiektów.

Inny matematyk i filozof, George Boole, opublikował w 1847 roku artykuł zatytułowany „Mathematical Analysis of Logic”, w którym opisał algebraiczny system logiki znany dziś jako algebra Boole'a. System opierał się na podejściu binarnym, które składało się z trzech podstawowych operacji: AND, OR i NOT. System ten zaczął działać dopiero, gdy absolwent MIT, Claude Shannon, zauważył, że algebra Boole’a, której się uczył, była podobna do obwodu elektrycznego.

Shannon napisała rozprawę w 1937 roku, w której dokonała ważnych odkryć. Teza Shannona stała się punktem wyjścia do wykorzystania kodu binarnego w praktycznych zastosowaniach, takich jak komputery i obwody elektryczne.

Inne formy kodu binarnego

Bitstring nie jest jedynym typem kodu binarnego. Ogólnie system binarny to dowolny system, który dopuszcza tylko dwie opcje, takie jak przełącznik w systemie elektronicznym lub prosty test prawdy lub fałszu.

Braille to rodzaj kodu binarnego powszechnie używany przez osoby niewidome do czytania i pisania za pomocą dotyku, nazwany na cześć jego twórcy Louisa Braille’a. System ten składa się z siatek po sześć punktów każda, po trzy w kolumnie, w których każdy punkt ma dwa stany: podniesiony lub wpuszczony. Różne kombinacje kropek mogą reprezentować wszystkie litery, cyfry i znaki interpunkcyjne.

Amerykański standardowy kod wymiany informacji (ASCII) wykorzystuje 7-bitowy kod binarny do reprezentowania tekstu i innych znaków w komputerach, sprzęcie komunikacyjnym i innych urządzeniach. Każdej literze lub symbolowi przypisana jest liczba od 0 do 127.

Kod dziesiętny kodowany binarnie lub BCD to zakodowana binarnie reprezentacja wartości całkowitych, która wykorzystuje 4-bitowy wykres do kodowania cyfr dziesiętnych. Cztery bity binarne mogą zakodować do 16 różnych wartości.

W liczbach zakodowanych w BCD tylko pierwsze dziesięć wartości w każdym półbaku jest prawidłowych i koduje cyfry dziesiętne z zerami po dziewiątkach. Pozostałe sześć wartości jest nieprawidłowych i może spowodować wyjątek maszyny lub nieokreślone zachowanie, w zależności od implementacji arytmetyki BCD w komputerze.

Arytmetyka BCD jest czasami preferowana w porównaniu z formatami liczb zmiennoprzecinkowych w zastosowaniach komercyjnych i finansowych, gdzie niepożądane jest złożone zaokrąglanie liczb.

Aplikacja

Większość nowoczesnych komputerów używa programu w kodzie binarnym do obsługi instrukcji i danych. Płyty CD, DVD i Blu-ray reprezentują dźwięk i obraz w formie binarnej. Połączenia telefoniczne realizowane są cyfrowo w sieciach telefonii międzystrefowej i komórkowej z wykorzystaniem modulacji impulsowo-kodowej oraz w sieciach VoIP.

Głębia bitowa kodu binarnego, Konwersja informacji z postaci ciągłej na dyskretną, Uniwersalność kodowania binarnego, Kody jednolite i niejednorodne, Informatyka 7. klasa Bosova, Informatyka 7. klasa

1.5.1. Konwersja informacji z postaci ciągłej na dyskretną
Aby rozwiązać swoje problemy, osoba często musi przekształcić istniejące informacje z jednej formy reprezentacji na inną. Na przykład podczas czytania na głos informacja jest konwertowana z postaci dyskretnej (tekst) na postać ciągłą (dźwięk). Natomiast podczas dyktando na lekcji języka rosyjskiego informacja z postaci ciągłej (głos nauczyciela) ulega przekształceniu w postać dyskretną (notatki uczniów).
Informacje prezentowane w formie dyskretnej są znacznie łatwiejsze do przesłania, przechowywania lub automatycznego przetwarzania. Dlatego w technologii komputerowej wiele uwagi poświęca się metodom konwersji informacji z postaci ciągłej na dyskretną.
Dyskretyzacja informacji to proces przekształcania informacji z ciągłej formy reprezentacji w dyskretną.
Przyjrzyjmy się istocie procesu próbkowania informacji na przykładzie.
Stacje meteorologiczne posiadają rejestratory umożliwiające ciągłą rejestrację ciśnienia atmosferycznego. Efektem ich pracy są barogramy – krzywe pokazujące, jak zmieniało się ciśnienie w długich okresach czasu. Jedną z takich krzywych, wykreśloną przez urządzenie w czasie siedmiu godzin obserwacji, pokazano na rys. 1.9.

Na podstawie otrzymanych informacji można zbudować tabelę zawierającą odczyty przyrządu na początku pomiarów i na końcu każdej godziny obserwacji (rys. 1.10).

Powstała tabela nie daje w pełni pełnego obrazu tego, jak zmieniało się ciśnienie w okresie obserwacji: nie wskazano np. najwyższej wartości ciśnienia, która wystąpiła podczas czwartej godziny obserwacji. Jeśli jednak zestawisz wartości ciśnienia obserwowane co pół godziny lub 15 minut, nowa tabela da pełniejszy obraz tego, jak zmieniało się ciśnienie.
W ten sposób informacje przedstawione w postaci ciągłej (barogram, krzywa) przekształciliśmy w postać dyskretną (tabela) z pewną utratą dokładności.
W przyszłości poznasz sposoby dyskretnego przedstawiania informacji dźwiękowych i graficznych.

Łańcuchy trzech symboli binarnych uzyskuje się poprzez uzupełnienie dwucyfrowych kodów binarnych po prawej stronie symbolem 0 lub 1. W rezultacie kombinacji kodowych trzech symboli binarnych jest 8 - dwa razy więcej niż dwóch symboli binarnych:
Odpowiednio czterobitowy plik binarny pozwala uzyskać 16 kombinacji kodu, pięciobitowy - 32, sześciobitowy - 64 itd. Długość łańcucha binarnego - liczba znaków w kodzie binarnym - wynosi nazywana głębią bitową kodu binarnego.
Pamiętaj, że:
4 = 2 * 2,
8 = 2 * 2 * 2,
16 = 2 * 2 * 2 * 2,
32 = 2 * 2 * 2 * 2 * 2 itd.
Tutaj liczba kombinacji kodu jest iloczynem pewnej liczby identycznych czynników równych głębi bitowej kodu binarnego.
Jeżeli liczbę kombinacji kodu oznaczymy literą N, a głębię bitową kodu binarnego literą i, to zidentyfikowany wzorzec w postaci ogólnej zostanie zapisany w następujący sposób:
N = 2 * 2 * ... * 2.
ja czynniki
W matematyce takie iloczyny zapisuje się jako:
N = 2 tj.
Wpis 2 i czyta się następująco: „2 do potęgi i”.

Zadanie. Przywódca plemienia Multi poinstruował swojego ministra, aby opracował plik binarny i przetłumaczył na niego wszystkie ważne informacje. Jaki rozmiar pliku binarnego będzie wymagany, jeśli alfabet używany przez plemię Multi zawiera 16 znaków? Zapisz wszystkie kombinacje kodów.
Rozwiązanie. Ponieważ alfabet wieloplemienny składa się z 16 znaków, potrzebne są kombinacje kodowe 16. W tym przypadku długość (głębokość bitowa) kodu binarnego jest określana ze stosunku: 16 = 2 tj. Stąd i = 4.
Aby zapisać wszystkie kombinacje kodowe czterech zer i jedynek, używamy diagramu na ryc. 1.13: 0000, 0001, 0010, 0011, 0100, 0101, 0110,0111,1000,1001,1010,1011,1100,1101,1110,1111.

1.5.3. Wszechstronność kodowania binarnego
Na początku tej sekcji dowiedziałeś się, że wyrażone w formie ciągłej można wyrazić za pomocą symboli w jakimś języku naturalnym lub formalnym. Z kolei znaki dowolnego alfabetu można zamienić na binarne. W ten sposób za pomocą kodu binarnego można przedstawić dowolne języki naturalne i formalne, a także obrazy i dźwięki (ryc. 1.14). Oznacza to uniwersalność kodowania binarnego.
Kody binarne są szeroko stosowane w technologii komputerowej i wymagają tylko dwóch stanów obwodu elektronicznego - „włączony” (odpowiada to cyfrze 1) i „wyłączony” (odpowiada to liczbie 0).
Główną zaletą kodowania binarnego jest prostota realizacji technicznej. Wadą kodowania binarnego jest duża długość powstałego kodu.

1.5.4. Kody jednolite i niejednolite
Istnieją kody jednolite i niejednolite. Kody jednolite w kombinacjach kodowych zawierają tę samą liczbę symboli, kody nieparzyste inną liczbę.
Powyżej przyjrzeliśmy się jednolitym kodom binarnym.
Przykładem kodu niejednorodnego jest alfabet Morse’a, w którym dla każdej litery i cyfry zdefiniowana jest sekwencja krótkich i długich sygnałów. Zatem litera E odpowiada krótkiemu sygnałowi („kropka”), a litera Ш odpowiada czterem długim sygnałom (cztery „kreski”). Nierówna pozwala na zwiększenie szybkości transmisji komunikatu dzięki temu, że symbole najczęściej występujące w przesyłanych informacjach mają najkrótsze kombinacje kodowe.

Informacja, jaką daje ten symbol, jest równa entropii układu i jest maksymalna w przypadku, gdy oba stany są jednakowo prawdopodobne; w tym przypadku symbol elementarny przekazuje informację 1 (dwie jednostki). Dlatego podstawą optymalnego kodowania będzie wymóg, aby podstawowe znaki w zakodowanym tekście występowały średnio jednakowo często.

Przedstawmy tutaj sposób skonstruowania kodu spełniającego podany warunek; Metoda ta znana jest jako kod Shannona-Fano. Jego idea polega na tym, że zakodowane symbole (litery lub kombinacje liter) dzielą się na dwie w przybliżeniu jednakowo prawdopodobne grupy: w przypadku pierwszej grupy symboli na pierwszym miejscu kombinacji (pierwszy znak liczby binarnej reprezentującej symbol); dla drugiej grupy - 1. Następnie każdą grupę ponownie dzieli się na dwie w przybliżeniu równie prawdopodobne podgrupy; dla symboli pierwszej podgrupy zero jest umieszczane na drugim miejscu; dla drugiej podgrupy - jedna itd.

Zademonstrujmy zasadę konstruowania kodu Shannona-Fano z materiału alfabetu rosyjskiego (tabela 18.8.1). Policzmy pierwsze sześć liter (od „-” do „t”); sumując ich prawdopodobieństwa (częstotliwości), otrzymujemy 0,498; prawdopodobieństwo wszystkich pozostałych liter (od „n” do „sf”) wynosi w przybliżeniu 0,502. Pierwsze sześć liter (od „-” do „t”) będzie miało w pierwszej kolejności binarne 0. Pozostałe litery (od „n” do „f”) będą miały w pierwszej kolejności jedynkę. Następnie ponownie dzielimy pierwszą grupę na dwie w przybliżeniu równie prawdopodobne podgrupy: od „-” do „o” i od „e” do „t”; dla wszystkich liter pierwszej podgrupy na drugim miejscu wstawimy zero, a drugiej podgrupy - 1. Proces będziemy kontynuować tak długo, aż w każdym podziale pozostanie dokładnie jedna litera, która będzie zakodowana określoną liczbą binarną. Mechanizm do budowy kodu pokazano w tabeli 18.8.2, a sam kod podano w tabeli 18.8.3.

Tabela 18.8.2.

Znaki binarne

Tabela 18.8.3

Korzystając z Tabeli 18.8.3, możesz kodować i dekodować dowolną wiadomość.

Jako przykład zapiszmy wyrażenie „teoria informacji” w kodzie binarnym.

01110100001101000110110110000

0110100011111111100110100

1100001011111110101100110

Należy pamiętać, że nie ma potrzeby oddzielania liter specjalnym znakiem, ponieważ dekodowanie odbywa się jednoznacznie nawet bez tego. Możesz to sprawdzić, dekodując następującą frazę, korzystając z tabeli 18.8.2:

10011100110011001001111010000

1011100111001001101010000110101

010110000110110110

(„metoda kodowania”).

Należy jednak zauważyć, że jakikolwiek błąd kodowania (losowe pomylenie znaków 0 i 1) z takim kodem jest katastrofalny, ponieważ dekodowanie całego tekstu następującego po błędzie staje się niemożliwe. Dlatego tę zasadę kodowania można zalecić tylko w przypadkach, w których praktycznie wyeliminowane są błędy w kodowaniu i przesyłaniu komunikatu.

Powstaje naturalne pytanie: czy skompilowany przez nas kod, przy braku błędów, jest naprawdę optymalny? Aby odpowiedzieć na to pytanie, znajdźmy średnią informację na symbol elementarny (0 lub 1) i porównajmy ją z maksymalną możliwą informacją, która jest równa jednej jednostce binarnej. Aby to zrobić, najpierw znajdujemy średnią informację zawartą w jednej literze przesyłanego tekstu, czyli entropię na literę:

,

gdzie jest prawdopodobieństwo, że litera przyjmie określony stan („-”, o, e, a,…, f).

Ze stołu 18.8.1 mamy

(dwie jednostki na literę tekstu).

Korzystając z tabeli 18.8.2, określamy średnią liczbę symboli elementarnych na literę

Dzieląc entropię przez, otrzymujemy informację na każdy symbol elementarny

(dwie jednostki).

Zatem informacja przypadająca na znak jest bardzo bliska górnej granicy wynoszącej 1, a wybrany przez nas kod jest bardzo zbliżony do optymalnego. Pozostając w granicach zadania kodowania liter, nie możemy osiągnąć nic lepszego.

Należy zauważyć, że w przypadku kodowania prostych binarnych liczb liter, mielibyśmy obraz każdej litery składający się z pięciu znaków binarnych, a informacja dla jednego znaku byłaby

(dwie jednostki),

tj. zauważalnie mniej niż przy optymalnym kodowaniu liter.

Należy jednak zaznaczyć, że kodowanie „literowe” wcale nie jest ekonomiczne. Faktem jest, że zawsze istnieje zależność między sąsiednimi literami dowolnego znaczącego tekstu. Na przykład po samogłosce w języku rosyjskim nie może być „ъ” ani „ь”; „Ja” lub „yu” nie mogą pojawić się po syczeniu; po kilku spółgłoskach z rzędu wzrasta prawdopodobieństwo samogłoski itp.

Wiemy, że gdy systemy zależne są połączone, całkowita entropia jest mniejsza niż suma entropii poszczególnych układów; dlatego informacja przekazywana przez fragment połączonego tekstu jest zawsze mniejsza niż informacja na znak pomnożona przez liczbę znaków. Biorąc pod uwagę tę okoliczność, bardziej ekonomiczny kod można skonstruować, kodując nie każdą literę osobno, ale całe „bloki” liter. Na przykład w tekście rosyjskim sensowne jest zakodowanie w całości niektórych często występujących kombinacji liter, takich jak „tsya”, „ayet”, „nie” itp. Zakodowane bloki są ułożone w malejącej kolejności częstotliwości, podobnie jak litery na stole. 18.8.1, a kodowanie binarne odbywa się na tej samej zasadzie.

W niektórych przypadkach rozsądne okazuje się kodowanie nawet nie bloków liter, ale całych znaczących fragmentów tekstu. Przykładowo, aby odciążyć telegraf w czasie wakacji, wskazane jest kodowanie całych tekstów standardowych za pomocą umownych numerów, takich jak:

„Gratuluję Nowego Roku, życzę zdrowia i sukcesów w pracy.”

Nie zagłębiając się konkretnie w metody kodowania blokowego, ograniczymy się do sformułowania powiązanego tutaj twierdzenia Shannona.

Niech będzie źródło informacji i odbiorca połączone kanałem komunikacyjnym (ryc. 18.8.1).

Znana jest produktywność źródła informacji, czyli średnia liczba binarnych jednostek informacji pochodzących ze źródła w jednostce czasu (liczbowo jest równa średniej entropii komunikatu produkowanego przez źródła w jednostce czasu). Niech będzie dodatkowo znana przepustowość kanału, czyli maksymalna ilość informacji (na przykład znaki binarne 0 lub 1), jaką kanał jest w stanie przesłać w tej samej jednostce czasu. Powstaje pytanie: jaka powinna być przepustowość kanału, aby „sprostał” swojemu zadaniu, czyli aby informacja dotarła od źródła do odbiorcy bez opóźnień?

Odpowiedź na to pytanie daje pierwsze twierdzenie Shannona. Sformułujmy to tutaj bez dowodu.

Pierwsze twierdzenie Shannona

Jeżeli przepustowość kanału komunikacyjnego jest większa niż entropia źródła informacji w jednostce czasu

wówczas zawsze istnieje możliwość zakodowania wystarczająco długiego komunikatu, aby został on przesłany kanałem komunikacyjnym bez opóźnień. Jeżeli wręcz przeciwnie,

wówczas przekazanie informacji bez opóźnienia jest niemożliwe.

W tej lekcji omówiony zostanie temat „Kodowanie informacji. Kodowanie binarne. Jednostki miary informacji.” Podczas niego użytkownicy będą mogli zapoznać się z kodowaniem informacji, sposobem postrzegania informacji przez komputer, jednostkami miary i kodowaniem binarnym.

Temat:Informacje wokół nas

Lekcja: Kodowanie informacji. Kodowanie binarne. Jednostki informacji

W tej lekcji omówione zostaną następujące pytania:

1. Kodowanie jako zmiana formy prezentacji informacji.

2. W jaki sposób komputer rozpoznaje informacje?

3. Jak mierzyć informację?

4. Jednostki miary informacji.

W świecie kodów

Dlaczego ludzie kodują informacje?

1. Ukryj to przed innymi (kryptografia lustrzana Leonarda da Vinci, szyfrowanie wojskowe).

2. Zapisz krótko informacje (skrócony skrót, skrót, znaki drogowe).

3. Dla łatwiejszego przetwarzania i transmisji (kod Morse'a, tłumaczenie na sygnały elektryczne - kody maszynowe).

Kodowanie to reprezentacja informacji za pomocą jakiegoś kodu.

Kod to system symboli służących do prezentacji informacji.

Metody kodowania informacji

1. Grafika (patrz rys. 1) (za pomocą rysunków i znaków).

Ryż. 1. System flag sygnałowych (źródło)

2. Numeryczne (za pomocą liczb).

Na przykład: 11001111 11100101.

3. Symboliczne (przy użyciu symboli alfabetu).

Na przykład: NKMBM CHGYOU.

Rozszyfrowanie - jest to działanie mające na celu przywrócenie pierwotnej formy prezentacji informacji. Aby rozszyfrować, musisz znać kod i zasady kodowania.

Środkiem kodowania i dekodowania jest tabela korespondencji kodów. Na przykład zgodność w różnych systemach liczbowych wynosi 24 - XXIV, zgodność alfabetu z dowolnymi symbolami (ryc. 2).


Ryż. 2. Przykład szyfru (źródło)

Przykłady kodowania informacji

Przykładem kodowania informacji jest alfabet Morse’a (patrz rysunek 3).

Ryż. 3. Alfabet Morse'a ()

Alfabet Morse'a wykorzystuje tylko 2 symbole - kropkę i myślnik (krótki i długi dźwięk).

Innym przykładem kodowania informacji jest alfabet flagowy (patrz ryc. 4).

Ryż. 4. Alfabet flagowy ()

Innym przykładem jest alfabet flag (patrz ryc. 5).

Ryż. 5. ABC flag ()

Dobrze znanym przykładem kodowania jest alfabet muzyczny (patrz ryc. 6).

Ryż. 6. Alfabet muzyczny ()

Rozważ następujący problem:

Korzystając z tabeli alfabetu flag (patrz ryc. 7), należy rozwiązać następujący problem:

Ryż. 7

Starszy oficer Lom zdaje egzamin kapitanowi Vrungelowi. Pomóż mu przeczytać następujący tekst (patrz rysunek 8):

Wokół nas krążą głównie dwa sygnały, na przykład:

Sygnalizacja świetlna: czerwono - zielona;

Pytanie: tak - nie;

Lampa: włączona - wyłączona;

Jest to możliwe - nie jest możliwe;

Dobry zły;

Prawda jest kłamstwem;

Tam i z powrotem;

Tak nie;

Wszystko to są sygnały wskazujące ilość informacji w 1 bicie.

1 bit - jest to ilość informacji, która pozwala nam wybrać jedną opcję z dwóch możliwych.

Komputer to maszyna elektryczna działająca na obwodach elektronicznych. Aby komputer rozpoznał i zrozumiał informacje wejściowe, należy je przetłumaczyć na język komputerowy (maszynowy).

Algorytm przeznaczony dla wykonawcy musi być napisany, czyli zakodowany, w języku zrozumiałym dla komputera.

Są to sygnały elektryczne: prąd przepływa lub prąd nie przepływa.

Język binarny maszyny - ciąg „0” i „1”. Każda liczba binarna może mieć wartość 0 lub 1.

Każda cyfra kodu binarnego maszyny niesie ze sobą ilość informacji równą 1 bitowi.

Nazywa się liczbę binarną reprezentującą najmniejszą jednostkę informacji B To . Bit może przyjmować wartość 0 lub 1. Obecność sygnału magnetycznego lub elektronicznego w komputerze oznacza 1, a brak 0.

Nazywa się ciąg 8 bitów B TO . Komputer przetwarza ten ciąg znaków jako oddzielny znak (cyfrę, literę).

Spójrzmy na przykład. Słowo ALICE składa się z 5 liter, z których każda jest reprezentowana w języku komputerowym przez jeden bajt (patrz rys. 10). Dlatego Alicję można zmierzyć jako 5 bajtów.

Ryż. 10. Kod binarny (źródło)

Oprócz bitów i bajtów istnieją inne jednostki informacji.

Bibliografia

1. Bosova L.L. Informatyka i ICT: Podręcznik dla klasy 5. - M.: BINOM. Laboratorium Wiedzy, 2012.

2. Bosova L.L. Informatyka: Zeszyt ćwiczeń dla klasy 5. - M.: BINOM. Laboratorium Wiedzy, 2010.

3. Bosova L.L., Bosova A.Yu. Lekcje informatyki w klasach 5-6: Podręcznik metodyczny. - M.: BINOM. Laboratorium Wiedzy, 2010.

2. Festiwal „Lekcja otwarta” ().

Praca domowa

1. §1.6, 1.7 (Bosova L.L. Informatyka i ICT: Podręcznik dla klasy 5).

2. Strona 28, zadania 1, 4; s. 30, zadania 1, 4, 5, 6 (Bosova L.L. Informatyka i ICT: Podręcznik dla klasy 5).

Komputery nie rozumieją słów i liczb tak jak ludzie. Nowoczesne oprogramowanie pozwala użytkownikowi końcowemu to zignorować, ale na najniższych poziomach komputer działa na binarnym sygnale elektrycznym ma tylko dwa stany: niezależnie od tego, czy jest prąd, czy nie. Aby „zrozumieć” złożone dane, komputer musi zakodować je w formacie binarnym.

System binarny opiera się na dwóch cyfrach, 1 i 0, odpowiadających stanom włączenia i wyłączenia, które komputer może zrozumieć. Prawdopodobnie znasz system dziesiętny. Używa dziesięciu cyfr od 0 do 9, a następnie przechodzi do następnej kolejności, tworząc liczby dwucyfrowe, przy czym każda liczba jest dziesięciokrotnie większa od poprzedniej. System binarny jest podobny, w którym każda cyfra jest dwa razy większa od poprzedniej.

Liczenie w formacie binarnym

W wyrażeniu binarnym pierwsza cyfra jest równa 1 w systemie dziesiętnym. Druga cyfra to 2, trzecia to 4, czwarta to 8 i tak dalej – za każdym razem podwajając. Dodanie wszystkich tych wartości da liczbę w formacie dziesiętnym.

1111 (w systemie binarnym) = 8 + 4 + 2 + 1 = 15 (w systemie dziesiętnym)

Uwzględnienie 0 daje nam 16 możliwych wartości dla czterech bitów binarnych. Przesuń 8 bitów, a otrzymasz 256 możliwych wartości. Zajmuje to znacznie więcej miejsca do przedstawienia, ponieważ cztery cyfry dziesiętne dają nam 10 000 możliwych wartości. Oczywiście kod binarny zajmuje więcej miejsca, ale komputery rozumieją pliki binarne znacznie lepiej niż system dziesiętny. W przypadku niektórych rzeczy, takich jak przetwarzanie logiczne, system binarny jest lepszy niż dziesiętny.

Należy powiedzieć, że istnieje jeszcze jeden podstawowy system stosowany w programowaniu: szesnastkowy. Chociaż komputery nie działają w formacie szesnastkowym, programiści używają go do reprezentowania adresów binarnych w formacie czytelnym dla człowieka podczas pisania kodu. Dzieje się tak, ponieważ dwie cyfry w liczbie szesnastkowej mogą reprezentować cały bajt, co oznacza, że ​​zastępują osiem cyfr w systemie binarnym. System szesnastkowy wykorzystuje cyfry 0–9, a także litery od A do F, aby utworzyć dodatkowe sześć cyfr.

Dlaczego komputery używają plików binarnych?

Krótka odpowiedź: sprzęt i prawa fizyki. Każdy znak w komputerze jest sygnałem elektrycznym, a w początkach informatyki pomiar sygnałów elektrycznych był znacznie trudniejszy. Bardziej sensowne byłoby rozróżnienie tylko stanu „włączonego”, reprezentowanego przez ładunek ujemny, i stanu „wyłączonego”, reprezentowanego przez ładunek dodatni.

Dla tych, którzy nie wiedzą, dlaczego „wyłączenie” jest reprezentowane przez ładunek dodatni, dzieje się tak dlatego, że elektrony mają ładunek ujemny, a więcej elektronów oznacza większy prąd z ładunkiem ujemnym.

W związku z tym używano wczesnych komputerów wielkości pokoju pliki binarne do tworzenia swoich systemów i chociaż korzystali ze starszego, masywniejszego sprzętu, pracowali na tych samych podstawowych zasadach. Nowoczesne komputery korzystają z tzw tranzystor do wykonywania obliczeń za pomocą kodu binarnego.

Oto schemat typowego tranzystora:

Zasadniczo umożliwia przepływ prądu ze źródła do drenu, jeśli w bramce jest prąd. Tworzy to klucz binarny. Producenci mogą sprawić, że tranzystory te będą niezwykle małe — do 5 nanometrów, czyli wielkości dwóch nici DNA. Tak właśnie działają współczesne procesory i nawet one mogą mieć problemy z rozróżnieniem stanów włączonych i wyłączonych (choć wynika to z ich nierealistycznej wielkości molekularnej podlegającej dziwaczność mechaniki kwantowej).

Dlaczego tylko system binarny

Możesz więc pomyśleć: „Dlaczego tylko 0 i 1? Dlaczego nie dodać kolejnego numeru? Choć po części wynika to z tradycji tworzenia komputerów, to jednocześnie dodanie kolejnej cyfry oznaczałoby konieczność rozróżnienia innego stanu prądu, a nie tylko „wyłączony” czy „włączony”.

Problem polega na tym, że jeśli chcesz używać wielu poziomów napięcia, potrzebujesz sposobu na łatwe wykonywanie na nich obliczeń, a obecny sprzęt, który jest w stanie to zrobić, nie jest opłacalny jako zamiennik obliczeń binarnych. Na przykład istnieje tzw potrójny komputer, opracowany w latach pięćdziesiątych XX wieku, ale na tym rozwój się zatrzymał. Logika trójskładnikowa bardziej wydajny niż binarny, ale nie ma jeszcze skutecznego zamiennika tranzystora binarnego lub przynajmniej nie ma tranzystora w tej samej małej skali co binarny.

Powodem, dla którego nie możemy używać logiki trójskładnikowej, jest sposób podłączenia tranzystorów w komputerze i sposób ich wykorzystania do obliczeń matematycznych. Tranzystor odbiera informację na dwóch wejściach, wykonuje operację i zwraca wynik na jedno wyjście.

Zatem matematyka binarna jest łatwiejsza dla komputera niż cokolwiek innego. Logikę binarną można łatwo przekształcić w systemy binarne, w których Prawda i Fałsz odpowiadają stanom Włączenia i Wyłączenia.

Binarna tabela prawdy działająca w oparciu o logikę binarną będzie miała cztery możliwe wyniki dla każdej podstawowej operacji. Ponieważ jednak potrójne bramki korzystają z trzech wejść, potrójna tabela prawdy będzie zawierać 9 lub więcej. Podczas gdy system binarny ma 16 możliwych operatorów (2^2^2), system trójskładnikowy miałby 19683 (3^3^3). Skalowanie staje się problemem, ponieważ trójca jest bardziej wydajna, ale jest również wykładniczo bardziej złożona.

Kto wie? W przyszłości możemy zobaczyć komputery trójskładnikowe, ponieważ logika binarna boryka się z problemami miniaturyzacji. Na razie świat będzie nadal działał w trybie binarnym.

Powiedz przyjaciołom