Що таке двійковий код

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

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







Головне - щоб відповідні елементи позначали взаємовиключні або протилежні за значенням дані.

Прекрасним прикладом двійкового коду можуть служити будь-які пари антонімів, наприклад, «так / ні», «біле / чорне», «включено / вимкнено» і т.д.

Для опису двійкового коду використовується поняття розряду (точніше - довічного розряду), що об'єднує целочисленную групу елементів двійкового коду.

Наприклад, в системі, що використовує базові елементи 0 і 1, два двійкових розряди можуть бути представлені такими чотирма комбінаціями: 00, 01, 10 і 11.

Три довічних розряду можуть мати такий вигляд: 000, 001, 010, 011, 100, 101, 110 і 111.

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

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

Збільшення розрядності на одиницю призведе до подвоєння числа комбінацій в позиційному двійковому коді.

При двох символах (дивись приклади вище) ми маємо 4 комбінації, при трьох - 8 комбінацій, при чотирьох - 16 комбінацій, при n символах - 2 n комбінацій.

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

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

Наприклад, в двійковій системі числення одиницю можна представити по-різному: 1, 01, 001, 0001 і т.д.

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

Якщо взяти двійковий код 01011, то перший розряд буде мати значення 1, другий розряд - 1, третій розряд - 0, четвертий - 1 і п'ятий розряд - 0:

Приклади двійкового коду

За допомогою трьох двійкових розрядів можна позначити вісім десяткових чисел від 0 до 7:

0 = 000
1 = 001
2 = 010
3 = 011
4 = 100
5 = 101
6 = 110
7 = 111

Ця таблиця відображає переклад десяткових чисел в двійковий код.

Що таке двійковий код

Фото 1. Вимикачі - прекрасний приклад двійкового коду

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







Щоб перевести двійковий код назад в десятковий, потрібно 1-ий розряд двійкового коду помножити на 1 (або на 2 0), 2-ий розряд - на 2 (або на 2 1), третій розряд - на 4 (або на 2 2) , n-ий розряд - на 2 n-1. а потім скласти отримані значення.

Навіщо потрібен двійкового коду

Основне призначення двійкового коду - шифрування і кодування інформації.

Його головні переваги - мінімальне число символів, що використовуються для кодування інформації, і зручність - з машинної точки зору - оперування зашифрованими з їх допомогою даними.

Припустимо, нам необхідно закодувати фразу «ХОЛОДНА ЛІТО».

Встановимо довільні відповідності букв двійкового коду: Х - 000, О - 001, Л - 010, Д - 011, Н - 100, Е - 101, Т - 111.

Що таке двійковий код

Фото 2. Двійковий код лежить в основі двійкової системи числення

Тоді закодована фраза прийме наступний вигляд: 000001010001011100001101010101111001 (36 символів).

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

В даному випадку ми маємо справу з однозначно декодіруемой кодом (тобто код може бути розшифрований одним єдиним способом).

Для скорочення довжини коду може застосовуватися нерівномірний двійкового коду.

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

Наприклад, якщо Х матиме позначення 01, Про - 00, Л - 100, Д - 101, Н - 110, Е - 111, Т - 1111, то фразі «ХОЛОДНА ЛІТО» буде відповідати рядок 01001000010111000111100111111100 (32 символу).

У цій фразі буде однозначно декодувати фрагмент «ХОЛОДНО», після чого дешіфровщіков доведеться ламати голову над вибором прийнятною трактування коду: «Е ЛІТО», «Е Лееле», «Е ЛТЕО», «ТОЕЕЛ» і т.д.

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

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

Види двійкових кодів

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

При цьому значення мінімального числа в n-розрядному двійковому коді буде дорівнює 0, а максимального обчислюватися за формулою 2 n -1.

Наприклад, для шестнадцатіразрядного коду допустимими будуть значення чисел від 0 до 65535.

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

Що таке двійковий код

Фото 3. За допомогою двійкового коду можна закодувати все що завгодно

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

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

Зокрема, для визначення знака числа використовується старший розряд в слові.

Якщо слово починається з символу «0», значить число позитивне (має знак «+»), якщо з символу «1», значить воно - негативне (має знак «-»).

При використанні шестнадцатіразрядного коду в такому випадку ми зможемо зашифрувати числа в діапазоні від -32767 до +32767.

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

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







Схожі статті