Czy uderzając beznamiętnie w klawiaturę, tworząc kolejne, mniej lub bardziej znaczące ciągi znaków, zastanawiałeś się w jakiej formie pokonują one drogę pomiędzy klawiaturą a monitorem? Z innej beczki. Może wryło Ci się już w pamięć, że w cyfrowym świecie sprzęty rozmawiają ze sobą w sposób, nazwijmy, zerojedynkowy? Jeśli tak, to czy domyślasz się jak wyglądałoby Twoje imię zapisane przy pomocy samych zer i jedynek? Bo ja dziś właśnie o tym.
Znaki, znaki, znaki, czyli kodowanie niejedno ma imię
ISO-8859-2, albo Windows-1250… Na dokładkę jeszcze Mazovia. Mówi Ci to coś? Przez lata opracowano wiele różnego rodzaju standardów kodowania znaków. Wspomniane przed chwilą trzy z nich to akurat standardy, o które oparto kodowanie polskich znaków. Wszystkie nasze „ą” i „ę” mają zatem swoje „unormowane” miejsce w wirtualnej rzeczywistości.
Ciekawostkę stanowi wspomniana przed chwilą Mazovia, obecnie praktycznie nieużywana i w sumie zapomniana. Mowa o standardzie kodowania znaków zaprojektowanym na potrzeby polskiego komputera osobistego o tej samej nazwie – dzieła spółki „Mikrokomputery”. Produkcja Mazovii rozpoczęła się w roku 1986. Warto wspomnieć, że komputer można było ujrzeć dwa lata później w trzecim z kolei filmie opowiadającym o przygodach prof. Ambrożego Kleksa, czyli „Pan Kleks w kosmosie”.
Mazovia, jako system kodowania znaków, dosyć szybko „zeszła ze sceny”. Wraz z pojawieniem się systemu MS-DOS 5.0 jej popularność zaczęła spadać. Ostatecznie została wyparta przez system kodowania Windows-1250, z którym mogliśmy się pierwszy raz spotkać w systemach operacyjnych Windows 95 i NT 4.0.
Mów mi ASCII
Innymi słowy – American Standard Code for Information Interchange. To przy pomocy tego 7-bitowego (albo 8-bitowego, o tym za chwilę) kodu zapisywane są znaki, jakie wprowadzamy przy pomocy klawiatury. Litery, cyfry, znaki przestankowe, etc. Kod ten, najprościej rzecz ujmując, przyporządkowuje liczbom z zakresu od 0 do 127 (128 liczb, bo 2 do potęgi 7 to…) kolejne litery, cyfry i inne symbole.
Przykładowo pod liczbą 48 kryje się zero, dziewiątka jest zapisywana jako 57, natomiast 65 oznacza pierwszą literę alfabetu, czyli „A”. Tu ważna uwaga, mamy oczywiście rozróżnienie liter ze względu na wielkość – duże „A” to 65, małe „a” to 97.
Warto zwrócić uwagę na jeszcze jeden szczegół. Na początku wspomniałem, iż ASCII jest z założenia kodem 7-bitowym. Sęk w tym, że my operujemy często na jednostkach informacji podawanych w ośmiu bitach – wiesz 1 bajt to 8 bitów. No właśnie, używając systemu kodowania zaprojektowanego na 7-bitów, mając jednocześnie do dyspozycji jeden bit więcej marnowalibyśmy miejsce. Pierwszy znak byłby zapisany (binarnie) jako 0000 0000, natomiast ostatni jako 0111 1111. Najbardziej znaczący bit pozostałby nieużywany… Na szczęście poradzono sobie z tym faktem w prosty sposób. Na 7 bitach zapisywany jest – powiedzmy – podstawowy zestaw znaków. Dodatkowy, ósmy bit, pozwala zwiększyć ilość kombinacji o kolejne 128 znaków (w sumie 256 znaków, bo 2 do potęgi 8 to…). Kodowanie z wykorzystaniem 8 bitów opisano w standardzie ISO 8859, stworzonym w latach 80. przez European Computer Manufacturers Association (w skrócie ECMA).
Nazywam się…
Jeśli znaki są kodowane za pomocą liczb, to w jaki sposób mogę zapisać swoje imię? Już wyjaśniam. Dodam, że warto orientować się „mniej więcej” na czym polega system dwójkowy (binarny, albo zerojedynkowy, jak kto woli) i szesnastkowy, o czym wspominałem ostatnio.
Masz na imię Andrzej, lat… No dobra, samo imię nam wystarczy 😀
Wystarczy nam również podstawowy zakres znaków, do których zapisu potrzeba „tylko” 7 bitów. Do pełni szczęścia potrzebujemy jeszcze jakiejś tabeli, gdzie zapisane są poszczególne litery i cyfry oraz przyporządkowane im kody ASCII. Taką tabelę można znaleźć tutaj.
Teraz wystarczy odczytać poszczególne kody z tablicy…
A = 65
n = 110
d = 100
r = 114
z = 122
e = 101
j = 106
…i gotowe! Zapewne zauważyłeś, że w tabeli podano również kody ASCII w formie binarnej. Innymi słowy „Andrzej” w formie binarnej to po prostu…
01000001 01101110 01100100 01110010 01111010 01100101 01101010
Prawda, że proste? 😀
Znając już sposób kodowania znaków ASCII możesz rozszyfrować dwa posty, jakie zamieściłem na Facebooku, zapowiadając poprzedni wpis: pierwszy i drugi.
Podsumowanie
Kodowanie ASCII nie powinno stanowić już dla Ciebie problemu, a Ty śmiało możesz zacząć porozumiewać się w ten właśnie sposób. Może znajdziesz bratnią duszę, która Cię zrozumie? Jeśli nie, to przynajmniej zacznij śledzić (o ile już tego nie robisz) profil elektroniczny.eu na Facebooku. Cześć!
Zdjęcie: oskay / Foter / CC BY