1.2. Кодування повідомлень
Під час кодування повідомлення відбувається зміна вигляду повідомлення без зміни його змісту. Якщо ми хочемо це саме повідомлення записати, то для позначення звуків на письмі використовуються літери. Можна сказати, що літери є кодами звуків, а звукове повідомлення закодоване у вигляді письмового повідомлення за допомогою літер і розділових знаків.
Подання повідомлень у вигляді спеціальних графічних зображень (піктограм), запис хімічної реакції у вигляді спеціального рівняння, запис шахової партії спеціальними позначеннями, запис слів із використанням азбуки Морзе - усе це приклади кодування повідомлень.
Наведемо приклади кодування повідомлень.
Вам, напевно, доводилося розгадувати ребуси. У ребусі спеціальним чином кодується повідомлення: слово або речення (рис. 1.10).
На Сході народилася мова квітів - селам. У ній повідомлення кодувалися за допомогою квітів. Даруючи парубку рожеву гвоздику, дівчина дарує йому свою ніжність. Жовті хризантеми символізують розлуку. Крокус - це роздуми, барвінок - вічна любов і пам’ять, пролісок - стійкість, доброта, чистота помислів, червона троянда - символ кохання. Лавр - це символ успіху, слави, тріумфу (рис. 1.11).
Дипломати і розвідники кодують повідомлення спеціальними шифрами, щоб їх могли прочитати тільки ті, кому вони призначені. Письменник Артур Конан Дойл (1859-1930) написав оповідання «Танцюючі чоловічки». У ньому автор придумав оригінальний спосіб кодування повідомлень. Замість літер використовуються зображення чоловічків у різних позах. Їх руки і ноги змінюють положення, всі вони різні, і здається, що кожен із них виконує веселий танок (рис. 1.12).
Більш як 160 років тому американський художник Семюел Морзе (1791-1872) (рис. 1.13) придумав свій спосіб кодування повідомлень, який отримав назву «Азбука Морзе». У цій азбуці кожна літера кодується за допомогою крапок і тире.
От як з використанням азбуки Морзе буде записано слово порт: "– – – – – – –". У 1844 р. ця азбука була вперше використана для передачі повідомлень за допомогою телеграфу.
Двійкове кодування повідомлень
При кодуванні повідомлень за допомогою азбуки Морзе використовують два символи: крапка і тире. Такий вид кодування називається двійковим.
Двійкове кодування використовується в сучасних комп’ютерах. У них повідомлення подаються (кодуються) у вигляді послідовностей електричних або магнітних сигналів двох видів. Кожний сигнал одного виду умовно позначається цифрою 0, а другого виду - 1.
Однією з двох цифр 0 або 1 можна закодувати, наприклад:
- правильність твердження: неправильно (0) або правильно (1);
- стать людини: жіноча (0) або чоловіча (1);
- стан вимикача: вимкнено (0) або ввімкнено (1) тощо.
З двох бітів можна скласти 4 (22) коди (00, 01, 10 і 11). Ними можна закодувати, наприклад, чотири основні сторони горизонту: 00 - північ, 01 - схід, 10 - захід, 11 - південь.
З трьох бітів можна скласти вже 8 (23) кодів (000, 001, 010, 011, 100, 101, 110, 111). Ними можна закодувати, наприклад, номери рядків або стовпців шахівниці.
З чотирьох бітів можна скласти 24 = 16 кодів, з п’яти - 25 = 32 коди і т. д.
З восьми бітів можна скласти 28 = 256 кодів, і цієї кількості кодів достатньо, щоб закодувати всі літери англійського та українського (або якогось іншого) алфавіту, арабські цифри, розділові знаки, знаки арифметичних дій, а також деякі інші символи.
Якщо символ повідомлення кодувати послідовністю з 8 бітів, то довжина коду цього символу дорівнюватиме 8 бітів, або 1 байт.
Наприклад, повідомлення Ми розпочали вивчати інформатику! містить 33 символи (включаючи і символи пропуск). Тому якщо кожний символ кодувати двійковим кодом довжиною 1 байт, то довжина двійкового коду такого повідомлення дорівнюватиме 33 байтам.
При такому кодуванні один рядок тексту цього підручника має середню довжину двійкового коду приблизно 50 байтів, одна сторінка - приблизно 2 000 байтів, а весь підручник - приблизно 700 000 байтів. Зауважимо, що всі ці дані можна розмістити на одному гнучкому диску, а на компакт-диску можна розмістити 1000 таких підручників.
Графічні, звукові, відеоповідомлення під час їх опрацювання комп’ютером також кодуються двійковими кодами. Так довжина двійкового коду І серії кольорового відеофільму-казки «Десяте королівство», показ якого триває 86 хв., дорівнює 720 357 376 байтів.
Довжина двійкового коду повідомлень називається обсягом даних.
Для позначення довжин двійкового коду повідомлень використовують і більші одиниці вимірювання, які, згідно з Міжнародною системою одиниць (СІ), утворюються за допомогою префіксів кіло, мега, гіга, тера і т. д.
Історично склалося так, що ці префікси (кіло, мега, гіга, тера) в інформатиці трактувалися по-іншому, не так як, наприклад, у математиці, а саме:
1 Кбайт (кілобайт) = 210 байтів = 1024 байтів;
1 Мбайт (мегабайт) = 210 Кбайт = 220 байтів = 1 048 576 байтів;
1 Гбайт (гігабайт) = 210 Мбайт = 220 Кбайт = 230 байтів;
1 Тбайт (терабайт) = 210 Гбайт = 220 Мбайт = 230 Кбайт = 240 байтів.
Так сталося тому, що для кодування повідомлень у комп’ютері використовують 2 цифри. І оскільки 210 = 1024, що приблизно дорівнює 1000, то саме 210 байтів = 1024 байти і стали називати кілобайт. Аналогічно, 210 кілобайтів стали називати мегабайт і т. д.
Таке неоднозначне трактування префіксів вносить певну плутанину, і з цього приводу існує такий жарт:
- Чим відрізняється математик від інформатика?
- Математик вважає, що в 1 кілобайті 1000 байтів, а інформатик - що в 1 кілометрі 1024 метри.
Таблиці кодування
Однією з перших таблиць двійкового кодування літер англійського алфавіту, арабських цифр, розділових знаків, знаків арифметичних дій і деяких інших символів, яка використовувалася в комп’ютері, є таблиця кодування ASCII (англ. American Standard Code for Information Interchage – Американський стандартний код для обміну інформацією).
Згодом на основі цієї таблиці кодування були створені інші, які містять літери алфавітів різних мов, а також деякі інші символи.
Зазначимо, що у різних таблицях кодування одні й ті самі символи можуть мати різні коди. Останнім часом серед таблиць кодування, які містять українські літери, найпоширенішими є КОІ8—U і Windows-1251. Довжина коду кожного символу в них - 1 байт.
Кілька років тому виникла ідея створити універсальну таблицю кодування, в яку увійшли б літери всіх алфавітів найпоширеніших людських мов, у тому числі й ієрогліфи східних мов (японська, китайська, корейська)та інші символи, які використовують під час роботи з комп’ютером. Оскільки кількість символів у такій таблиці значно більша, ніж 256, тому вирішили кожний символ кодувати не одним байтом, а двома. Шістнадцятьма бітами (двома байтами) можна закодувати 216 = 65 536 символів. Ця таблиця кодування отримала назву Unicode.
Вимірювання кількості інформації
На сьогодні існують кілька підходів до вирішення питання про вимірювання кількості інформації.
Згідно з одним із них, кількість інформації взагалі не можна виміряти. Нагадаємо, що інформація - це відомості про об’єкти і явища, які підвищують рівень обізнаності. А підвищення рівня обізнаності є більше якісною характеристикою, ніж кількісною. І ніяка формула не допоможе дати відповідь на питання: яку кількість інформації отримає людина, прочитавши роман Олеся Гончара «Собор», подивившись фрески Мікеланджело, послухавши сигнали дзвонів, яка кількість інформації міститься в генетичному коді людини? Одна й та сама інформація може по-різному підвищувати рівень обізнаності різних людей. Це залежить від попередніх знань людини, її здатності сприйняти цю інформацію саме в даний момент і ще від багатьох об’єктивних і суб’єктивних факторів. Саме з цих причин кількість інформації виміряти неможливо.
Згідно з іншим підходом, кількість інформації виміряти можна. Цей підхід базується на такому визначенні одиниці вимірювання кількості інформації: 1 біт — це кількість інформації, що міститься у повідомленні, яке вдвічі зменшує невизначеність знань про що-небудь.
Наприклад, якщо ви чекаєте автобус на зупинці, то вас може цікавити, чи під’їде він протягом найближчих 5 хв. Повідомлення про це зменшує невизначеність ваших знань з цього питання удвічі, і тому містить 1 біт інформації.
Американський інженер Ральф Хартлі (1888-1970) запропонував таке правило для визначення кількості інформації: якщо маємо N рівноможливих випадків, то кількість інформації (І) визначається з формули N = 2і.
Наприклад, нехай кулька знаходиться в одній із чотирьох скриньок. Тобто маємо 4 рівноможливих випадки (N = 4). Тоді, за формулою Хартлі, 4 = 2і. Звідси 1 = 2. Отже, повідомлення про те, в якій саме скриньці знаходиться кулька, містить 2 біти інформації.
Для нерівноможливих випадків американський вчений, один із творців теорії інформації, Клод Шенон (1916-2001) (рис. 1.14), запропонував значно складнішу формулу, в якій використовуються поняття ймовірності й логарифма (що таке логарифм ви дізнаєтеся в наступних класах при вивченні математики).
Зауважимо, що досить часто довжину двійкового коду повідомлення ототожнюють з кількістю інформації, що несе це повідомлення. Це принципово неправильно. Адже повідомлення може бути закодоване, але не нести інформацію. Довге повідомлення може нести значно менше інформації, ніж коротке. Можна повторити одне й те саме повідомлення кілька разів підряд: інформації від цього не стане більше, а довжина двійкового коду збільшиться. Можна навіть закодувати абсолютно безглузде повідомлення, наприклад «Бамбарбія кергуду», яке має довжину свого двійкового коду, але не несе ніяку інформацію.