Контакти

Значення двійкового коду. Двійковий код. Знаковий додатковий код двійкового числа

08. 06.2018

Блог Дмитра Вассіярова.

Двійковий код – де і як застосовується?

Сьогодні я особливо радий своїй зустрічі з вами, дорогі мої читачі, адже я почуваюся учителем, який на першому уроці починає знайомити клас з літерами та цифрами. А оскільки ми живемо у світі цифрових технологій, то я розповім вам, що таке двійковий код, який є їхньою основою.

Почнемо з термінології та з'ясуємо, що означає двійковий. Для пояснення повернемося до звичного нам обчислення, яке називається «десятковим». Тобто ми використовуємо 10 знаків-цифр, які дають можливість зручно оперувати різними числами та вести відповідний запис.

Дотримуючись цієї логіки, двійкова система передбачає використання лише двох знаків. У нашому випадку, це лише «0» (нуль) і «1» одиниця. І тут я хочу вас попередити, що гіпотетично на їхньому місці могли б бути й інші умовні позначення, але саме такі значення, що позначають відсутність (0, порожньо) і наявність сигналу (1 або «паличка»), допоможуть нам надалі усвідомити структуру двійкового. коду.

Навіщо потрібний двійковий код?

До появи ЕОМ використовувалися різні автоматичні системи, принцип роботи яких ґрунтується на отриманні сигналу. Спрацьовує датчик, ланцюг замикається і вмикається певний пристрій. Немає струму в сигнальному ланцюзі – немає спрацьовування. Саме електронні пристрої дозволили досягти прогресу в обробці інформації, представленої наявністю або відсутністю напруги в ланцюзі.

Подальше їхнє ускладнення призвело до появи перших процесорів, які так само виконували свою роботу, обробляючи вже сигнал, що складається з імпульсів, що чергуються певним чином. Ми зараз не будемо вникати в програмні подробиці, але для нас важливо наступне: електронні пристрої виявилися здатними розрізняти задану послідовність сигналів, що надходять. Звісно, ​​можна й так описати умовну комбінацію: «є сигнал»; "немає сигналу"; "є сигнал"; "є сигнал". Навіть можна спростити запис: є; "ні"; "є"; "є".

Але набагато простіше позначити наявність сигналу одиницею «1», яке відсутність – нулем «0». Тоді ми замість цього зможемо використовувати простий і лаконічний двійковий код: 1011.

Безумовно, процесорна техніка зробила крок далеко вперед і зараз чіпи здатні сприймати не просто послідовність сигналів, а цілі програми, записані певними командами, що складаються з окремих символів.

Але для їх запису використовується той самий двійковий код, що складається з нулів і одиниць, що відповідає наявності або відсутності сигналу. Є він, або його немає – не має значення. Для чіпа будь-який із цих варіантів – це поодинока частинка інформації, яка отримала назву «біт» (bit – офіційна одиниця виміру).

Умовно символ можна закодувати послідовністю з кількох знаків. Двома сигналами (або їх відсутністю) можна описати лише чотири варіанти: 00; 01; 10; 11. Такий спосіб кодування називається двобітним. Але він може бути:

  • Чотирьохбітний (як у прикладі на абзац вище 1011) дозволяє записати 2^4 = 16 комбінацій-символів;
  • Восьмибітним (наприклад: 0101 0011; 0111 0001). У свій час він представляв найбільший інтерес для програмування, оскільки охоплював 2^8 = 256 значень. Це давало змогу описати всі десяткові цифри, латинський алфавіт та спеціальні знаки;
  • Шістнадцятибітним (1100 1001 0110 1010) та вище. Але записи з такою довгою – це вже для сучасних складніших завдань. Сучасні процесори використовують 32-х та 64-х бітну архітектуру;

Скажу чесно, єдиної офіційної версії немає, то так склалося, що саме комбінація з восьми знаків стала стандартним заходом інформації, що зберігається, що називається «байт». Така могла застосовуватися навіть до однієї літери, записаної 8-бітним двійковим кодом. Отже, дорогі мої друзі, запам'ятайте будь ласка (якщо хтось не знав):

8 біт = 1 байт.

Так прийнято. Хоча символ, записаний 2-х або 32-х бітним значенням, так само номінально можна назвати байтом. До речі, завдяки двійковому коду ми можемо оцінювати обсяги файлів, що вимірюються в байтах та швидкість передачі інформації та інтернету (біт за секунду).

Бінарне кодування у дії

Для стандартизації запису інформації для комп'ютерів було розроблено кілька кодувальних систем, одна з яких ASCII, що базується на 8-бітного запису, набула широкого поширення. Значення у ній розподілені особливим чином:

  • перший 31 символ - керуючі (з 00000000 до 00011111). Служать для службових команд, виведення на принтер чи екран, звукових сигналів, форматування тексту;
  • наступні з 32 по 127 (00100000 – 01111111) латинський алфавіт та допоміжні символи та розділові знаки;
  • інші, до 255-го (10000000 - 11111111) - альтернативна, частина таблиці для спеціальних завдань та відображення національних алфавітів;

Розшифрування значень у ній показано у таблиці.

Якщо ви вважаєте, що 0 і 1 розташовані в хаотичному порядку, то глибоко помиляєтеся. На прикладі будь-якого числа я покажу вам закономірність і навчу читати цифри, записані двійковим кодом. Але для цього приймемо деякі умовності:

  • Байт із 8 знаків читатимемо праворуч наліво;
  • Якщо у звичайних числах у нас використовуються розряди одиниць, десятків, сотень, то тут (читаючи у зворотному порядку) для кожного біта представлені різні ступені «двійки»: 256-124-64-32-16-8-4-2-1;
  • Тепер дивимося на двійковий код числа, наприклад 00011011. Там, де у відповідній позиції є сигнал «1» – беремо значення цього розряду та підсумовуємо їх звичним способом. Відповідно: 0+0+0+32+16+0+2+1 = 51. У правильності цього методу ви можете переконатись, поглянувши на таблицю кодів.

Тепер, мої допитливі друзі, ви не тільки знаєте, що таке двійковий код, але і вмієте перетворити зашифровану ним інформацію.

Мова, зрозуміла сучасній техніці

Звичайно, алгоритм зчитування двійкового коду процесорними пристроями набагато складніший. Але його допомогою можна записати все що завгодно:

  • Текстову інформацію із параметрами форматування;
  • Числа та будь-які операції з ними;
  • Графічні та відео зображення;
  • Звуки, у тому числі й ті, що виходять і за межу нашої чутності;

Крім цього, завдяки простоті «викладу» можливі різні способи запису бінарної інформації:

  • Зміною магнітного поля на ;
  • Доповнює переваги двійкового кодування практично необмежені можливості передачі інформації на будь-які відстані. Саме такий спосіб зв'язку використовується з космічними кораблями та штучними супутниками.

    Отже, сьогодні двійкова система числення є мовою, зрозумілою більшості електронних пристроїв, які ми використовуємо. І що найцікавіше, жодної іншої альтернативи для нього поки що не передбачається.

    Думаю, що викладеної мною інформації для початку вам буде цілком достатньо. А далі, якщо виникне така потреба, кожен зможе заглибитись у самостійне вивчення цієї теми.

    Я ж прощатимусь і після невеликої перерви підготую для вас нову статтю мого блогу, на якусь цікаву тему.

    Краще, якщо ви самі її мені підкажіть;)

    До зустрічі.

    Якщо вам цікаво дізнатись, як читати двійкові числа, важливо зрозуміти, як працюють двійкові числа. Двійкова система відома як система нумерації "base 2", що означає наявність двох можливих чисел для кожної цифри; один чи нуль. Великі числа записуються шляхом додавання додаткових двійкових одиниць чи нулів.



    Розуміння двійкових чисел


    Знання про те, як читати двійкові файли, не є критичним для використання комп'ютерів. Але добре зрозуміти концепцію, щоб краще зрозуміти, як комп'ютери зберігають числа у пам'яті. Він також дозволяє розуміти такі терміни, як 16-бітові, 32-бітові, 64-бітові та вимірювання пам'яті, такі як байти (8 біт).



    «Читання» двійкового коду зазвичай означає переведення двійкового числа до базового 10 (десяткового) числа, з яким люди знайомі. Це перетворення досить просто виконати у своїй голові, коли ви зрозумієте, як працює бінарна мова.

    Кожна цифра у двійковому числі має певне значення, якщо цифра не є нулем. Після того, як ви визначили всі ці значення, ви просто складаєте їх разом, щоб отримати 10-значне десяткове значення двійкового числа. Щоб побачити, як це працює, візьміть двійкове число 11001010.


    1. Кращий спосіб прочитати двійкове число - почати з правої цифри і рухатися вліво. Сила цього першого розташування дорівнює нулю, тобто значення для цієї цифри, якщо це не нуль, дорівнює двом ступеням нуля або одиниці. У цьому випадку, оскільки цифра є нулем, значення для цього місця дорівнюватиме нулю.



    2. Перейдіть до наступної цифри. Якщо це один, то розрахуйте два в одному ступені. Запишіть це значення. У цьому прикладі значення дорівнює ступеня два, що дорівнює двом.



    3. Продовжуйте повторювати цей процес, поки не дійдете до лівої цифри.



    4. Щоб закінчити все, що вам потрібно зробити, це скласти всі ці числа разом, щоб отримати загальне десяткове значення двійкового числа: 128 + 64 + 0 + 0 + 8 + 0 + 2 + 0 = 202 .


    Нотатка: Інший спосіб побачити весь цей процес у формі рівняння полягає в наступному: 1 x 2 7 + 1 x 2 6 + 0 x 2 5 + 0 x 2 4 + 1 x 2 3 + 0 x 2 2 + 1 x 2 1 + 0 х 2 0 = 20.


    Двійкові числа з підписом


    Наведений метод працює для базових двійкових чисел без знака. Однак комп'ютерам потрібен спосіб подання негативних чисел також за допомогою бінарного коду.


    Через це комп'ютери використовують двійкові числа зі знаком. У системі цього найлівіша цифра відома як знаковий біт, інші цифри відомі як біти амплітуди.


    Читання двійкового числа зі знаком майже таке саме, як і без знака, з однією невеликою відмінністю.


    1. Виконайте ту ж процедуру, як описано вище для двійкового числа без знака, але зупиніться, як тільки ви досягнете найлівішого біта.



    2. Щоб визначити знак, перегляньте крайній лівий біт. Якщо це одиниця, то число є негативним. Якщо це нуль, то число є позитивним.



    3. Тепер виконайте ті ж обчислення, що й раніше, але застосуйте відповідний знак до числа, вказаного крайнім лівим бітом: 64 + 0 + 0 + 8 + 0 + 2 + 0 = -74 .


    4. Бінарний метод зі знаком дозволяє комп'ютерам представляти числа, які є позитивними чи негативними. Однак він споживає початковий біт, а це означає, що для великих чисел потрібно більше пам'яті, ніж для двійкових чисел без знака.

    На цьому уроці буде розглянуто тему «Кодування інформації. Двійкове кодування. Одиниці виміру інформації». У ході нього користувачі зможуть отримати уявлення про кодування інформації, способи сприйняття інформації комп'ютерів, одиниці її вимірювання та двійкове кодування.

    Тема:Інформація навколо нас

    Урок: Кодування інформації. Двійкове кодування. Одиниці виміру інформації

    На цьому уроці будуть розглянуті такі питання:

    1. Кодування як зміна форми подання інформації.

    2. Як комп'ютер розпізнає інформацію?

    3. Як виміряти інформацію?

    4. Одиниці виміру інформації.

    У світі кодів

    Навіщо люди кодують інформацію?

    1. Приховати її від інших (дзеркальний тайнопис Леонардо да Вінчі, військові шифрування).

    2. Записати інформацію коротше (стенографія, абревіатура, дорожні знаки).

    3. Для більш легкої обробки та передачі (азбука Морзе, переведення в електричні сигнали - машинні коди).

    Кодування - це подання інформації за допомогою певного коду.

    Код - це система умовних знаків подання інформації.

    Способи кодування інформації

    1. Графічний (див. рис. 1) (за допомогою малюнків та знаків).

    Мал. 1. Система сигнальних прапорів (Джерело)

    2. Числовий (за допомогою чисел).

    Наприклад: 11001111 11100101.

    3. Символьний (за допомогою символів алфавіту).

    Наприклад: НКМБМ ЧДЄУ.

    Декодування - це дія щодо відновлення первісної форми подання інформації. Для декодування необхідно знати код та правила кодування.

    Засобом кодування та декодування служить кодова таблиця відповідності. Наприклад, відповідність у різних системах числення - 24 - XXIV, відповідність алфавіту будь-яким символам (Рис. 2).


    Мал. 2. Приклад шифру (Джерело)

    Приклади кодування інформації

    Прикладом кодування інформації є абетка Морзе (див. рис. 3).

    Мал. 3. Абетка Морзе ()

    В абетці Морзе використовується всього 2 символи - точка та тире (короткий і довгий звук).

    Ще одним прикладом кодування інформації є прапорцева абетка (див. рис. 4).

    Мал. 4. Прапорцева абетка ()

    Також прикладом є абетка прапорів (див. рис. 5).

    Мал. 5. Абетка прапорів ()

    Усім відомий приклад кодування – нотна абетка (див. рис. 6).

    Мал. 6. Нотна абетка ()

    Розглянемо таке завдання:

    Використовуючи таблицю прапорцевої абетки (див. мал. 7), необхідно вирішити наступне завдання:

    Мал. 7

    Старший помічник Лом складає іспит капітану Врунгелю. Допоможіть йому прочитати наступний текст (див. мал. 8):

    Навколо нас існують переважно два сигнали, наприклад:

    Світлофор: червоний – зелений;

    Питання: так – ні;

    Лампа: горить – не горить;

    Можна – не можна;

    Добре погано;

    Істина – брехня;

    Вперед назад;

    Є немає;

    Все це сигнали, що позначають кількість інформації на 1 біт.

    1 біт - це така кількість інформації, яка дозволяє нам вибрати один варіант із двох можливих.

    Комп'ютер – це електрична машина, що працює на електронних схемах. Щоб комп'ютер розпізнав і зрозумів інформацію, що вводиться, її треба перекласти на комп'ютерну (машинну) мову.

    Алгоритм, призначений для виконавця, має бути записаний, тобто закодований мовою, зрозумілою комп'ютеру.

    Це електричні сигнали: проходить струм чи не проходить струм.

    Машинна двійкова мова - послідовність "0" та "1". Кожне двійкове число може набувати значення 0 або 1.

    Кожна цифра двійкового машинного коду несе кількість інформації, що дорівнює 1 біт.

    Двійкове число, яке представляє найменшу одиницю інформації, називається б іт . Біт може приймати значення або 0 або 1. Наявність магнітного або електронного сигналу в комп'ютері означає 1, відсутність 0.

    Рядок з 8 бітів називається б айт . Цей рядок комп'ютер обробляє як окремий символ (число, букву).

    Розглянемо приклад. Слово ALICE складається з 5 букв, кожна з яких мовою комп'ютера представлена ​​одним байтом (див. рис. 10). Отже, Alice можна виміряти як 5 байт.

    Мал. 10. Двійковий код (Джерело)

    Крім біта та байта, існують й інші одиниці виміру інформації.

    Список літератури

    1. Босова Л.Л. Інформатика та ІКТ: Підручник для 5 класу. - М: БІНОМ. Лабораторія знань, 2012

    2. Босова Л.Л. Інформатика: Робочий зошит для 5 класів. - М: БІНОМ. Лабораторія знань, 2010

    3. Босова Л.Л., Босова А.Ю. Уроки інформатики у 5-6 класах: Методичний посібник. - М: БІНОМ. Лабораторія знань, 2010

    2. Фестиваль "Відкритий урок" ().

    Домашнє завдання

    1. §1.6, 1.7 (Босова Л.Л. Інформатика та ІКТ: Підручник для 5 класу).

    2. Стор. 28, завдання 1, 4; стор 30, завдання 1, 4, 5, 6 (Босова Л.Л. Інформатика та ІКТ: Підручник для 5 класу).

    Безліч символів, за допомогою яких записується текст, називається алфавітом.

    Число символів в алфавіті – це його потужність.

    Формула визначення кількості інформації: N = 2 b,

    де N – потужність алфавіту (кількість символів),

    b – кількість біт (інформаційна вага символу).

    В алфавіті потужністю 256 символів можна помістити практично всі необхідні символи. Такий алфавіт називається достатнім.

    Т.к. 256 = 28, то вага 1 символу - 8 біт.

    Одиниці виміру 8 біт надали назву 1 байт:

    1 байт = 8 біт.

    Двійковий код кожного символу в тексті комп'ютера займає 1 байт пам'яті.

    Як текстова інформація представлена ​​в пам'яті комп'ютера?

    Зручність побайтового кодування символів очевидна, оскільки байт - найменша частина пам'яті, що адресується, і, отже, процесор може звернутися до кожного символу окремо, виконуючи обробку тексту. З іншого боку, 256 символів – це достатня кількість для представлення найрізноманітнішої символьної інформації.

    Тепер виникає питання, який саме восьмирозрядний двійковий код поставити у відповідність до кожного символу.

    Зрозуміло, що ця справа умовна, можна вигадати безліч способів кодування.

    Усі символи комп'ютерного алфавіту пронумеровані від 0 до 255. Кожному номеру відповідає восьмирозрядний двійковий код від 00000000 до 11111111. Цей код є просто порядковим номером символу в двійковій системі числення.

    Таблиця, в якій всім символам комп'ютерного алфавіту поставлені у відповідність порядкові номери, називається таблицею кодування.

    Для різних типів ЕОМ застосовуються різні таблиці кодування.

    Міжнародним стандартом для ПК стала таблиця ASCII(Читається аски) (Американський стандартний код для інформаційного обміну).

    Таблиця кодів ASCII поділяється на частини.

    Міжнародним стандартом є перша половина таблиці, тобто. символи з номерами від 0 (00000000), до 127 (01111111).

    Структура таблиці кодування ASCII

    Порядковий номер

    Код

    Символ

    0 - 31

    00000000 - 00011111

    Символи з номерами від 0 до 31 називають керуючими.
    Їхня функція – керування процесом виведення тексту на екран або друк, подача звукового сигналу, розмітка тексту тощо.

    32 - 127

    00100000 - 01111111

    Стандартна частина таблиці (англійська). Сюди входять малі й великі літери латинського алфавіту, десяткові цифри, розділові знаки, всілякі дужки, комерційні та інші символи.
    Символ 32 – пробіл, тобто. порожній позиції в тексті.
    Решта відбиваються певними знаками.

    128 - 255

    10000000 - 11111111

    Альтернативна частина таблиці (російська).
    Друга половина кодової таблиці ASCII, яка називається кодовою сторінкою (128 кодів, починаючи з 10000000 і закінчуючи 11111111), може мати різні варіанти, кожен варіант має свій номер.
    Кодова сторінка в першу чергу використовується для розміщення національних алфавітів, відмінних від латинського. У російських національних кодування в цій частині таблиці розміщуються символи російського алфавіту.

    Перша половина таблиці кодів ASCII


    Звертаю вашу увагу на те, що в таблиці кодування літери (великі та малі) розташовуються в алфавітному порядку, а цифри впорядковані за зростанням значень. Таке дотримання лексикографічного порядку розташування символів називається принципом послідовного кодування алфавіту.

    Для літер російського алфавіту також дотримується принципу послідовного кодування.

    Друга половина таблиці кодів ASCII


    На жаль, в даний час існують п'ять різних кодувань кирилиці (КОІ8-Р, Windows. MS-DOS, Macintosh та ISO). Тому часто виникають проблеми з перенесенням російського тексту з одного комп'ютера на інший, з однієї програмної системи в іншу.

    Хронологічно одним із перших стандартів кодування російських букв на комп'ютерах був КОІ8 ("Код обміну інформацією, 8-бітний"). Це кодування застосовувалося ще в 70-ті роки на комп'ютерах серії ЄС ЕОМ, а з середини 80-х почала використовуватися в перших русифікованих версіях операційної системи UNIX.

    Від початку 90-х років, часу панування операційної системи MS DOS залишається кодування CP866 ("CP" означає "Code Page", "кодова сторінка").

    Комп'ютери фірми Apple, що працюють під керуванням операційної системи Mac OS, використовують своє власне кодування Mac.

    Крім того, Міжнародна організація зі стандартизації (International Standards Organization, ISO) затвердила як стандарт для російської мови ще одне кодування під назвою ISO 8859-5.

    Найбільш поширеним в даний час є кодування Microsoft Windows, що позначається скороченням CP1251.

    З кінця 90-х років проблема стандартизації символьного кодування вирішується запровадженням нового міжнародного стандарту, який називається Unicode. Це 16-розрядне кодування, тобто. в ній на кожен символ відводиться 2 байти пам'яті. Звичайно, при цьому обсяг пам'яті збільшується в 2 рази. Але така кодова таблиця допускає включення до 65536 символів. Повна специфікація стандарту Unicode включає всі існуючі, вимерлі та штучно створені алфавіти світу, а також безліч математичних, музичних, хімічних та інших символів.

    Спробуємо за допомогою таблиці ASCII уявити, як виглядатимуть слова у пам'яті комп'ютера.

    Внутрішнє уявлення слів у пам'яті комп'ютера

    Іноді буває так, що текст, який складається з літер російського алфавіту, отриманий з іншого комп'ютера, неможливо прочитати - на екрані монітора видно якусь "абракадабру". Це відбувається через те, що на комп'ютерах застосовується різне кодування символів російської мови.

    Розрядність двійкового коду, Перетворення інформації з безперервної форми на дискретну, Універсальність двійкового кодування, Рівномірні та нерівномірні коди, Інформатика 7 клас Босова, Інформатика 7 клас

    1.5.1. Перетворення інформації з безперервної форми на дискретну
    Для вирішення своїх завдань людині часто доводиться перетворювати наявну інформацію з однієї форми подання на іншу. Наприклад, під час читання вголос відбувається перетворення інформації з дискретної (текстової) форми на безперервну (звук). Під час диктанту на уроці російської мови, навпаки, відбувається перетворення інформації з безперервної форми (голос вчителя) на дискретну (записи учнів).
    Інформація, подана у дискретній формі, значно простіше передачі, зберігання чи автоматичної обробки. Тому в комп'ютерній техніці багато уваги приділяється методам перетворення інформації з безперервної форми в дискретну.
    Дискретизація інформації - процес перетворення інформації з безперервної форми подання на дискретну.
    Розглянемо суть процесу дискретизації інформації з прикладу.
    На метеорологічних станціях є самописні прилади для безперервного запису атмосферного тиску. Результатом їх роботи є барограми – криві, що показують, як змінювався тиск протягом тривалих проміжків часу. Одна з таких кривих, викреслена приладом протягом семи годин спостережень, показана на рис. 1.9.

    На підставі отриманої інформації можна побудувати таблицю, що містить показання приладу на початку вимірювань та на кінець кожної години спостережень (рис. 1.10).

    Отримана таблиця дає не зовсім повну картину того, як змінювався тиск за час спостережень: наприклад, не вказано найбільше значення тиску, що мало місце протягом четвертої години спостережень. Але якщо занести в таблицю значення тиску, що спостерігаються кожні півгодини або 15 хвилин, то нова таблиця даватиме повніше уявлення про те, як змінювався тиск.
    Таким чином, інформацію, подану у безперервній формі (барограму, криву), ми з деякою втратою точності перетворили на дискретну форму (таблицю).
    Надалі ви познайомитеся зі способами дискретного представлення звукової та графічної інформації.

    Ланцюжки із трьох двійкових символів виходять доповненням дворозрядних двійкових кодів праворуч символом 0 або 1. У результаті кодових комбінацій із трьох двійкових символів виходить 8 - удвічі більше, ніж із двох двійкових символів:
    Відповідно, чотирирозрядний двійковий дозволяє отримати 16 кодових комбінацій, п'ятирозрядний - 32, шестирозрядний - 64 і т. д. Довжину двійкового ланцюжка - кількість символів у двійковому коді - називають розрядністю двійкового коду.
    Зверніть увагу, що:
    4 = 2 * 2,
    8 = 2 * 2 * 2,
    16 = 2 * 2 * 2 * 2,
    32 = 2 * 2 * 2 * 2 * 2 і т.д.
    Тут кількість кодових комбінацій є твір деякої кількості однакових множників, рівного розрядності двійкового коду.
    Якщо кількість кодових комбінацій позначити літерою N, а розрядність двійкового коду – літерою i, то виявлена ​​закономірність у загальному вигляді буде записана так:
    N = 2*2*...*2.
    i множників
    У математиці такі твори записують у вигляді:
    N = 2 i.
    Запис 2 i читають так: «2 у i-му ступені».

    Завдання. Вождь племені Мульті доручив своєму міністру розробити двійковий і перекласти у нього всю важливу інформацію. Двійковий який розрядності знадобиться, якщо алфавіт, який використовується племенем Мульти, містить 16 символів? Випишіть усі кодові комбінації.
    Рішення. Так як алфавіт племені Мульти складається з 16 символів, то і кодових комбінацій їм потрібно 16. У цьому випадку довжина (розрядність) двійкового коду визначається співвідношенням: 16 = 2 i . Звідси i = 4.
    Щоб виписати всі кодові комбінації з чотирьох 0 та 1, скористаємося схемою на рис. 1.13: 0000, 0001, 0010, 0011, 0100, 0101, 0110,0111,1000,1001,1010,1011,1100,1101,1110,1111.

    1.5.3. Універсальність двійкового кодування
    На початку цього параграфа ви дізналися, що, представлена ​​у безперервній формі, може бути виражена за допомогою символів деякої природної чи формальної мови. У свою чергу, символи довільного алфавіту можуть бути перетворені на двійковий. Таким чином, за допомогою двійкового коду може бути представлена ​​будь-яка природними та формальними мовами, а також зображення та звуки (рис. 1.14). Це означає універсальність двійкового кодування.
    Двійкові коди широко використовуються в комп'ютерній техніці, вимагаючи лише двох станів електронної схеми - "включено" (це відповідає цифрі 1) та "вимкнено" (це відповідає цифрі 0).
    Простота технічної реалізації – головна перевага двійкового кодування. Недолік двійкового кодування - велика довжина коду, що отримується.

    1.5.4. Рівномірні та нерівномірні коди
    Розрізняють рівномірні та нерівномірні коди. Рівномірні коди кодових комбінаціях містять однакове число символів, нерівномірні - різне.
    Вище ми розглянули рівномірні двійкові коди.
    Прикладом нерівномірного коду може бути абетка Морзе, у якій кожної літери і цифри визначено послідовність коротких і довгих сигналів. Так, букві Е відповідає короткий сигнал («точка»), а букві Ш - чотири довгі сигнали (чотири «тире»). Нерівномірне дозволяє підвищити швидкість передачі повідомлень за рахунок того, що найбільш часто зустрічаються в інформації, що передається, мають найкоротші кодові комбінації.

    Інформація, яку дає цей символ, дорівнює ентропії системи та максимальна у разі, коли обидва стани рівноймовірні; у разі елементарний символ передає інформацію 1 (дв. од.). Тому основою оптимального кодування буде вимога, щоб елементарні символи в закодованому тексті зустрічалися в середньому однаково часто.

    Викладемо тут спосіб побудови коду, що задовольняє поставлену умову; цей спосіб відомий під назвою "коду Шеннона - Фено". Ідея його полягає в тому, що символи, що кодуються (літери або комбінації літер) поділяються на дві приблизно рівноймовірні групи: для першої групи символів на першому місці комбінації ставиться 0 (перший знак двійкового числа, що зображує символ); для другої групи - 1. Далі кожна група знову ділиться на дві приблизно рівноймовірні підгрупи; для символів першої підгрупи другою місці ставиться нуль; для другої підгрупи – одиниця тощо.

    Продемонструємо принцип побудови коду Шеннона – Фено на матеріалі російського алфавіту (табл. 18.8.1). Відрахуємо перші шість букв (від "-" до "т"); підсумовуючи їх ймовірності (частоти), отримаємо 0,498; на всі інші літери (від «н» до «сф») прийде приблизно така ж ймовірність 0,502. Перші шість літер (від «-» до «т») матимуть першому місці двійковий знак 0. Інші літери (від «н» до «ф») матимуть першому місці одиницю. Далі знову розділимо першу групу на дві приблизно рівноймовірні підгрупи: від "-" до "про" і від "е" до "т"; для всіх букв першої підгрупи на другому місці поставимо нуль, а другої підгрупи" - одиницю. Процес будемо продовжувати доти, поки в кожному підрозділі не залишиться рівно одна буква, яка і буде закодована певним двійковим числом. Механізм побудови коду показаний на таблиці 18.8 .2, а сам код наведено у таблиці 18.8.3.

    Таблиця 18.8.2.

    Двійкові знаки

    Таблиця 18.8.3

    За допомогою таблиці 18.8.3 можна закодувати та декодувати будь-яке повідомлення.

    Як приклад запишемо двійковим кодом фразу: «теорія інформації»

    01110100001101000110110110000

    0110100011111111100110100

    1100001011111110101100110

    Зауважимо, що тут немає необхідності відокремлювати один від одного букви спеціальним знаком, оскільки і без цього декодування виконується однозначно. У цьому вся можна переконатися, декодуючи з допомогою таблиці 18.8.2 наступну фразу:

    10011100110011001001111010000

    1011100111001001101010000110101

    010110000110110110

    («Спосіб кодування»).

    Однак необхідно зазначити, що будь-яка помилка при кодуванні (випадкове переплутування знаків 0 і 1) при такому коді є згубною, оскільки декодування всього наступного за помилкою тексту стає неможливим. Тому цей принцип кодування може бути рекомендований лише у випадку, коли помилки під час кодування та передачі повідомлення практично виключені.

    Виникає природне питання: а чи є складений нами код за відсутності помилок справді оптимальним? Для того щоб відповісти на це питання, знайдемо середню інформацію, що припадає на один елементарний символ (0 або 1), і порівняємо її з максимально можливою інформацією, яка дорівнює одній двійковій одиниці. Для цього знайдемо спочатку середню інформацію, що міститься в одній літері тексту, що передається, тобто ентропію на одну літеру:

    ,

    де - ймовірність того, що буква прийме певний стан («-», о, е, а, ..., ф).

    З табл. 18.8.1 маємо

    (Дв. одиниць на літеру тексту).

    За таблицею 18.8.2 визначаємо середню кількість елементарних символів на букву

    Ділячи ентропію на, отримуємо інформацію на один елементарний символ

    (Дв. од.).

    Таким чином, інформація на один символ дуже близька до своєї верхньої межі 1, а вибраний нами код дуже близький до оптимального. Залишаючись у межах завдання кодування за буквами, ми нічого кращого отримати не зможемо.

    Зауважимо, що у разі кодування просто двійкових номерів букв ми мали б зображення кожної літери п'ятьма двійковими знаками та інформація на один символ була б

    (дв. од.),

    тобто помітно менше, ніж при оптимальному буквеному кодуванні.

    Однак слід зауважити, що кодування «за буквами» взагалі не є економічним. Справа в тому, що між сусідніми літерами будь-якого осмисленого тексту завжди є залежність. Наприклад, після голосної літери російською мовою неспроможна стояти «ъ» чи «ь»; після шиплячих не можуть стояти "я" або "ю"; після кількох приголосних поспіль збільшується ймовірність голосної і т.д.

    Ми знаємо, що при об'єднанні залежних систем сумарна ентропія менша за суму ентропій окремих систем; отже, інформація, що передається відрізком зв'язкового тексту, завжди менше, ніж інформація на один символ, помножена на число символів. З урахуванням цієї обставини економніший код можна побудувати, якщо кодувати не кожну літеру окремо, а цілі «блоки» з літер. Наприклад, в російському тексті має сенс кодувати цілком деякі комбінації літер, що часто зустрічаються, як «ються», «ає», «не» і т. п. Кодовані блоки розташовуються в порядку зменшення частот, як літери в табл. 18.8.1, а двійкове кодування здійснюється за тим самим принципом.

    У ряді випадків виявляється розумним кодувати навіть блоки з літер, а цілі осмислені шматки тексту. Наприклад, для розвантаження телеграфу в передсвяткові дні доцільно кодувати умовними номерами цілі стандартні тексти, такі як:

    «Вітаю новим роком бажаю здоров'я успіхів роботі».

    Не зупиняючись спеціально на методах кодування блоками, обмежимося тим, що сформулюємо теорему Шеннона, що відноситься сюди.

    Нехай є джерело інформації та приймач, пов'язані каналом зв'язку (рис. 18.8.1).

    Відома продуктивність джерела інформації, тобто середня кількість двійкових одиниць інформації, що надходить від джерела в одиницю часу (чисельно воно дорівнює середній ентропії повідомлення, яке виробляється джерелам в одиницю часу). Нехай, крім того, відома пропускна здатність каналу, тобто максимальна кількість інформації (наприклад, двійкових знаків 0 або 1), яка здатна передати канал у ту саму одиницю часу. Виникає питання: якою має бути пропускна здатність каналу, щоб він «справлявся» зі своїм завданням, тобто щоб інформація від джерела до приймача надходила без затримки?

    Відповідь це питання дає перша теорема Шеннона. Сформулюємо її тут без підтвердження.

    1-а теорема Шеннона

    Якщо пропускна здатність каналу зв'язку більша за ентропію джерела інформації в одиницю часу

    завжди можна закодувати досить довге повідомлення так, щоб воно передавалося каналом зв'язку без затримки. Якщо ж, навпаки,

    то передача інформації без затримок неможлива.



    Сподобалася стаття? Поділіться їй