...
Лайфхаки, корисні поради, рекомендації. Статті для чоловіків і жінок. Ми пишемо і про технології, і про все, що цікаво.

Переведення інформації в двійковий код – що це таке, його види, розшифровка

1

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

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

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

  • 1 – висока напруга.
  • 0 – низька.

Або для одиниць — наявність напруги, а для нулів — відсутність.

Основою двійкової системи обчислення є двійкові коди. Що таке двійковий код?

Процес, коли дані перетворюються на нулі та одиниці, називають «двійкова конверсія», а остаточне їх позначення – «двійковий код».

Розрядність двійкового коду

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

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

Розшифровка двійкового коду

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

Подібним чином влаштовано і двійкову систему, в якій використовують лише дві цифри — нуль та одиницю. Місця зліва цінніші вдвічі, ніж місця праворуч. Так, для двійкового коду характерно, що одномісними числами може бути лише 0 і 1, а будь-яких чисел більше одиниці потрібно вже 2 місця.

Після 0 і 1 слідують такі двійкові числа:

  • 10 (тобто 1,0).
  • 11 (1,1).
  • 100 (1,0,0).

У двійковій системі 100 це еквівалент цифри 4 десяткової системи. Таким чином, будь-яке число можна виразити у вигляді двійкового коду, але воно займатиме більше місця. Також, закріпивши за кожною буквою алфавіту певні двійкові числа, можна здійснити переведення в двійковий код будь-якого слова.

Відео про переведення чисел у двійковий код

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

Наприклад, щоб закодувати слово "мама" вибирається наступний код:

  • М – 00.
  • А – 1.
  • Y — 01.
  • Л — 0.
  • У – 10.

Пробіл – 11.

Закодовані літери з’єднаються в один бітовий рядок і будуть передані через мережу в такому вигляді:

МАМА МИЛА ЛАМУ → 0010011100010111010010

Після того, як цей рядок буде доставлений до пункту призначення, слід вирішити проблему відновлення вихідного повідомлення. Так, отримавши повідомлення "001001", його розкодування можна здійснити кількома способами. Наприклад, припустивши, що воно складається лише з літер Л (код 0) та А (код 1), вийде:

ЛЛАЛЛААЛЛЛАЛАААЛЛ

Це означає, що наведений вище код не декодується однозначно. Однозначно коди, що декодуються — це такі коди, в яких будь-які кодові повідомлення розшифровуються тільки одним способом.

Рівномірні коди

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

Наприклад, якщо закодувати вищенаведену фразу за допомогою такого коду:

  • М – 000.
  • А – 001.
  • Y — 010.
  • Л — 011.
  • Пробіл – 101, то вийде таке:

МАМА МИЛА ЛАМУ → 000001000001101000010011001101011001000100

Це повідомлення має довжину 42 біти. Незважаючи на те, що воно довше, ніж перше, що складається всього з 22 біт, його значно легше розібрати на окремі слова для розкодування:

000 001 000 001 101 000 010 011 001 101 011 001 000 100

М А М А М И Л А   Л А М У 

Хоча такий рівномірний код не можна назвати економічним, проте його можна однозначно декодувати.

Відео про переведення букв у двійковий код

Нерівномірні коди

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

Наприклад, якщо використовувати для кодування "Мама мила ламу" такий код:

  • М – 01.
  • А – 00.
  • Y — 1011
  • Л — 100.
  • У – 1010.
  • Пробіл – 11, то вийде:

МАМА МИЛА ЛАМУ → 0100010011011011100001110000011010

Це повідомлення складається з 34 біт. Цей бітовий ланцюжок можна декодувати однозначно, оскільки в першій букві — М, що має код 01, код є унікальним, адже інші кодові слова не починаються з 01. Таким же чином можна визначити другу букву — А. інших кодових слів називають умовою Фано, а коди, що декодуються за допомогою властивості Фано, називаються префіксними.

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

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

Для подання цілих чисел існують такі види двійкових кодів:

  • Знакові.
  • Беззнакові.

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

Беззнакові коди

У цілих беззнакових двійкових кодах всі двійкові розряди представлені ступенем цифри 2:

Переведення інформації в двійковий код – що це таке, його види, розшифровка

Значення мінімально можливого числа дорівнює нулю, а максимальне визначається за такою формулою:

Переведення інформації в двійковий код – що це таке, його види, розшифровка

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

  • Якщо представлено восьмирозрядне беззнакове ціле число, діапазон чисел записується за допомогою коду: 0…255.
  • Якщо представлений шістнадцятирозрядний код – 0 … 65535.

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

Знакові коди

У прямих цілих знакових кодах уявлення знака числа здійснюється з допомогою старшого розряду у слові. Для прямого коду для позначення знака «+» використовується нуль, а знака «-» — одиниця. При введенні знакового розряду відбудеться зсув діапазону чисел у бік негативних значень.

  • Двійкове восьмирозрядне ціле число записується за допомогою такого діапазону: -127 … +127.
  • Шістнадцятирозрядний код буде записаний у діапазоні: -32767…+32767.

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

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

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

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

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі