Скільки бітів використовується для кодування в Unicode

кодування символів

На підставі одного осередку інформаційної ємністю 1 біт можна закодувати тільки 2 різних стану. Для того щоб кожен символ, який можна ввести з клавіатури в латинському регістрі. отримав свій унікальний двійковий код, потрібно 7 біт. На підставі послідовності з 7 біт, відповідно до формули Хартлі, може бути отримано N = 2 7 = 128 різних комбінацій з нулів і одиниць, тобто двійкових кодів. Поставивши у відповідність кожному символу його двійковий код, ми отримаємо кодіровочние таблицю. Людина оперує символами, комп’ютер – їх двійковими кодами.

Для латинської розкладки клавіатури така кодировочная таблиця одна на весь світ, тому текст, набраний з використанням латинської розкладки, буде адекватно відображено на будь-якому комп’ютері. Ця таблиця має назву ASCII (American Standard Code of Information Interchange) по-англійськи вимовляється [Ескі], по-російськи вимовляється [аски]. Нижче наводиться вся таблиця ASCII, коди в якій вказані в десятковому вигляді. По ній можна визначити, що коли ви вводите з клавіатури, скажімо, символ “*”, комп’ютер його сприймає як код 42 (10). в свою чергу 42 (10) = 101010 (2) – це і є двійковий код символу “*”. Коди з 0 по 31 в цій таблиці не задіяні.

Таблиця символів ASCII

Щоб зберігати також і коди національних символів кожної країни (в нашому випадку – символів кирилиці) потрібно додати ще 1 біт, що збільшить кількість унікальних комбінацій з нулів і одиниць вдвічі, тобто в нашому розпорядженні додатково з’явиться 128 вільних кодів (з 128-го по 255-й), у відповідність яким можна поставити символи українського алфавіту.

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

Так ми підійшли до необхідності познайомитися з ще однією базовою одиницею виміру – байтом.

Байт – послідовність з 8 біт.

1 байт = 2 3 біт = 8 біт.

На підставі одного байта можна одержати 2 8 = 256 унікальних двійкових кодів.

В сучасних кодіровочних таблицях під зберігання інформації про код кожного символу відводиться 1 байт.

1 символ = 1 байт.

В байтах вимірюється обсяг даних (V) при їх зберіганні і передачі по каналах зв’язку. Наприклад, текст “Добрий день!” Займає обсяг рівний 12 байтам.

Біти в байті нумеруються з кінця з 0-го по 7-й. Мінімальна комбінація на підставі одного байта – вісім нулів, максимальна – вісім одиниць. Мал. 18а.

11111111 (2) = 2 7 +2 6 +2 5 +2 4 +2 3 +2 2 +2 1 +2 0 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255 (10)

При зберіганні на фізичному рівні кожен байт може бути реалізований, наприклад, на базі восьми конденсаторів, кожний з яких або розряджений (0), або заряджений (1). Мал. 18b.

Мал. 18а. Байт: мінімальна і максимальна комбінації

Мал. 18b. Байт: відповідність двійкового числа і електричного імпульсу.

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

Наприклад, текст “Комп’ютерні віруси”, введений в кодуванні Windows-1251 в кодуванні ЯКІ-8 буде відображено так: “лПНРШАФЕТОШЕ ЧЙТХУЩ”.

Невідповідність кодів символів в різних кодуваннях кирилиці.

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

Використовуючи 8-бітну кодіровочние таблицю ми не зможемо адекватно побачити на моніторі і тексти, створені на тих мовах, де використовуються символи, відмінні від латинських і кириличних, наприклад символи з умляутами в німецькій мові.

Теоретично давно існує рішення цих проблем. Воно називається Unicode (Юнікод). Unicode – це кодировочная таблиця, в якій для кодування кожного символу використовується 2 байта, тобто 16 біт. На підставі такої таблиці може бути закодовано N = 2 16 = 65 536 символів.

Юнікод включає практично всі сучасні писемності, в тому числі: арабську, вірменську, бенгальську, бірманську, грецьку, грузинську, деванагарі, іврит, кирилицю, коптську, кхмерскую, латинську, тамільська, хангиль, хань (Китай, Японія, Корея), черокі, ефіопську, японську (катакана, хірагана, кандзі) та інші.

У Юникоде представлений широкий набір математичних і музичних символів, а також піктограм.

Для символів кирилиці в Юникоде виділено два діапазони кодів:

Cyrillic (# 0400 – # 04FF)

Cyrillic Supplement (# 0500 – # 052F).

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

Тому зараз на практиці більш поширене уявлення Юникода UTF-8 (Unicode Transformation Format). UTF-8 забезпечує найкращу сумісність з системами, що використовують 8-бітові символи. Текст, що складається тільки з символів з номером менше 128, при записі в UTF-8 перетворюється в звичайний текст ASCII. Решта символів Юнікоду зображуються послідовностями довжиною від 2 до 4 байтів. В цілому, так як найпоширеніші в світі символи – символи латинського алфавіту – в UTF-8, як і раніше займають 1 байт, таке кодування економічніше, ніж чистий Юнікод.

1. У кодируемом англійському тексті використовується тільки 26 букв латинського алфавіту і ще 6 знаків пунктуації. В цьому випадку текст, що містить 1000 символів можна гарантовано стиснути без втрат інформації до розміру:

2. Словник Еллочки – «людожерки» (персонаж роману «Дванадцять стільців») становить 30 слів. Скільки біт досить, щоб закодувати весь словниковий запас Еллочки? Варіанти: 8, 5, 3, 1.

4.4. Одиниці виміру обсягу даних і ємності пам’яті: кілобайти, мегабайти, гігабайти .

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

Обсяг даних (V) – кількість байт, яке потрібно для їх зберігання в пам’яті електронного носія інформації.

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

Однак байт – дрібна одиниця виміру обсягу даних, більшими є кілобайт, мегабайт, гігабайт, терабайт .

Слід запам’ятати, що приставки “кіло”, “мега”, “гіга” . не є в даному випадку десятковими. Так “кіло” в слові “кілобайт” не означає “тисяча”, тобто не означає “10 3”. Біт – двійкова одиниця, і з цієї причини в інформатиці зручно користуватися одиницями вимірювання кратними числа “2”, а не числа “10”.

1 байт = 2 3 = 8 біт, 1 кілобайт = 2 10 = 1024 байти. У двійковому вигляді 1 кілобайт = 10000000000 байт.

Тобто “Кіло” тут позначає найближчим до тисячі число, яке є при цьому ступенем числа 2, тобто є “круглим” числом в двійковій системі числення.

1 099 511 627 776 b

У зв’язку, з тим, що одиниці виміру обсягу і ємності носіїв інформації кратні 2 і не кратні 10, більшість завдань по цій темі простіше вирішується тоді, коли фігурують в них значення представляються ступенями числа 2. Розглянемо приклад такого завдання і її рішення:

У текстовому файлі зберігається текст обсягом в 400 сторінок. Кожна сторінка містить 3200 символів. Якщо використовується кодування KOI-8 (8 біт на один символ), то розмір файлу складе:

1) Визначаємо загальну кількість символів в текстовому файлі. При цьому ми представляємо числа, кратні ступеня числа 2 у вигляді ступеня числа 2, тобто замість 4, записуємо 2 + 2 і т.п. Для визначення ступеня можна використовувати Таблицю 7.

2) За умовою завдання 1 символ займає 8 біт, тобто 1 байт => файл займає 2 7 * 10000 байт.

3) 1 кілобайт = 2 10 байт => обсяг файлу в кілобайтах дорівнює:

1. Скільки біт в одному кілобайті?

2. Чому дорівнює 1 Мбайт?

4. Обсяг текстового файлу 640 Kb. Файл містить книгу, яка набрана в середньому по 32 рядки на сторінці і по 64 символу в рядку. Скільки сторінок в книзі: 160, 320, 540, 640, 1280?

5. Досьє на співробітників займають 8 Mb. Кожне з них містить 16 сторінок (32 рядки по 64 символу в рядку). Скільки співробітників в організації: 256; 512; 1024; 2048?

Схожі статті

1. Двійкове кодування повідомлень

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

Кодування даних — це процес, коли одну послідовність сигналів, якою подана інформація, замінюють на іншу.

За допомогою кодування звук музичного інструменту можна представити у вигляді нот, а розмову людей подати як текстовий запис певним алфавітом. У \(1844\) році для передавання даних телеграфом почали використовувати кодування азбукою Морзе, яку назвали на честь розробника Семюела Морзе (\(1791\)—\(1872\) рр.). Для кодування текстових повідомлень азбука Морзе містить тільки \(2\) сигнали: крапка і тире.

Слово «школа» азбукою Морзе буде виглядати як наступна послідовність сигналів: «—- -·- — ·-·· ·-» .

Азбука Морзе є чудовим прикладом двійкового кодування.
Двійкове кодування — це спосіб кодування інформації із використанням лише \(2\) сигналів.
Двійковий код повідомлення — це повідомлення, яке отримують після двійкового кодування.

У сучасних технічних засобах також використовують двійкове кодування. Уся інформація в комп’ютерах представлена у вигляді тільки двох цифр: \(0\) та \(1\). У двійковому коді такого повідомлення цифру \(0\) або \(1\) називають біт (англ. binary digitдвійковий знак).

За допомогою одного біта можна закодувати певне повідомлення. Наприклад, сигнал пішохідного світлофора: червоний — \(0\) або зелений — \(1\).

Із двома бітами можна закодувати вже \(4\) ( 2 2 ) повідомлення (00, 01, 10, 11), а із восьми бітів можна скласти 2 8 = 256 кодів, що відповідає кількості кодів у таблиці кодування символів Windows—1251. Отже, для того, щоб закодувати \(1\) символ українського чи англійського алфавіту, необхідно \(8\) бітів.

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