Двійковий код. Види і довжина двійкового коду. Зворотний двійковий код
Двійковий код являє собою форму запису інформації у вигляді одиниць і нулів. Така система обчислення
Зміст
- Як складається двоичная форма запису?
- Види двійкових кодів
- Беззнаковий двійковий код
- Прямі цілі знакові коди
- Знаковий зворотний ключ
- Знаковий додатковий код двійкового числа
- Код Грея
- Код Грея-Експрес
- Подання дробового числа в двійковому ключі з фіксованою комою
- Подання двійкового коду з плаваючою комою
- Це цікаво
Як складається двоичная форма запису?
Давайте розберемося, яким чином формується такий ключ. Один розряд двійкового коду може містити всього два стани: нуль і одиницю (0 і 1). При використанні двох розрядів з'являється можливість записати чотири значення: 00, 01, 10, 11. трехразрядного запис містить вісім станів: 000, 001 ... 110, 111. У результаті отримуємо, що довжина двійкового коду залежить від числа розрядів. Цей вираз можна записати за допомогою такої формули: N = 2m, де: m - це кількість розрядів, а N - число комбінацій.
Види двійкових кодів
У мікропроцесорах такі ключі застосовуються для запису різноманітної оброблюваної інформації. Розрядність двійкового коду може істотно перевищувати розрядність процесора і його вбудованої пам'яті. У таких випадках довгі числа займають кілька осередків запам'ятовує і обробляються за допомогою декількох команд. При цьому всі сектори пам'яті, які виділені під багатобайтові двійковий код, розглядаються в якості одного числа. Залежно від необхідності надання тієї чи іншої інформації, розрізняють такі види ключів:
- беззнаковие;
- прямі целиезнаковие коди;
- знакові обратние;
- знакові дополнітельние;
- код Грея;
- код Грея-Експресс.;
- дробові коди.
Розглянемо більш детально кожен з них.
Беззнаковий двійковий код
Давайте розберемося, що ж являє собою такий вид запису. У цілих беззнакових кодах кожен розряд (двійковий) являє ступінь цифри два. При цьому найменше число, яке можна записати в такій формі, дорівнює нулю, а максимальне можна представити наступною формулою: М = 2п-1. Ці два числа повністю визначають діапазон ключа, яким можна виразити такою двійковий код. Давайте розглянемо можливості згаданої форми запису. При використанні даного виду беззнакового ключа, що складається з восьми розрядів, діапазон можливих чисел складе від 0 до 255. Шестнадцатіразрядний код буде мати діапазон від 0 до 65535. У восьмирозрядних процесорах для зберігання і запису таких чисел використовують два сектори пам'яті, які розташовуються в сусідніх адресатах . Роботу з такими ключами забезпечують спеціальні команди.
Прямі цілі знакові коди
В даному виді двійкових ключів старший розряд використовується для запису знака числа. Нуль відповідає плюса, а одиниця - мінуса. У результаті введення даного розряду діапазон закодованих чисел зміщується в негативну сторону. Виходить, що восьмизарядний знаковий цілий двійковий ключ може записати числа в діапазоні від -127 до +127. Шестнадцатіразрядний - в діапазоні від -32767 до +32767. У восьмирозрядних мікропроцесорах для зберігання подібних кодів використовують два сусідніх сектора.
Недоліком такої форми запису є те, що знакові та цифрові розряди ключа необхідно обробляти окремо. Алгоритми програм, що працюють з цими кодами, виходять дуже складними. Для зміни і виділення знакових розрядів необхідно застосовувати механізми маскування цього символу, що сприяє різкому збільшенню розмірів програмного забезпечення і зменшенню його швидкодії. З метою усунення даного недоліку був введений новий вид ключа - зворотний двійковий код.
Знаковий зворотний ключ
Дана форма запису відрізняється від прямих кодів тільки тим, що негативне число в ній виходить шляхом інвертування всіх розрядів ключа. При цьому цифрові і знакові розряди ідентичні. Завдяки цьому, алгоритми роботи з таким видом кодів істотно спрощуються. Однак зворотний ключ вимагає спеціальний алгоритм для розпізнавання символу першого розряду, обчислення абсолютної величини числа. А також відновлення знака результуючого значення. Більш того, в зворотному і прямому кодах числа для запису нуля використовують два ключі. Незважаючи на те що це значення не має позитивного або негативного знака.
Знаковий додатковий код двійкового числа
Даний вид запису не має перерахованих недоліків попередніх ключів. Такі коди дозволяють проводити безпосереднє підсумовування як позитивних, так і негативних чисел. При цьому не проводиться аналіз знакового розряду. Все це стало можливим завдяки тому факту, що додаткові числа являють собою природне кільце символів, а не штучні утворення, такі як прямі і зворотні ключі. Більш того, важливим фактором є, то що зробити обчислення доповнень до довічних кодах надзвичайно просто. Для цього достатньо до зворотного ключу додати одиницю. При використанні даного виду знакового коду, що складається з восьми розрядів, діапазон можливих чисел складе від -128 до +127. Шестнадцатіразрядний ключ матиме діапазон від -32768 до +32767. У восьмирозрядних процесорах для зберігання таких чисел також використовують два сусідніх сектора.
Двійковий додатковий код цікавий спостережуваним ефектом, який називають явищем поширення знака. Давайте розберемося, що це означає. Даний ефект полягає в тому, що в процесі перетворення однобайтового значення в двухбайтовое достатньо кожному біту старшого байта призначити значення знакових бітів молодшого байта. Виходить, що для зберігання знакового символу числа можна скористатися старшими бітами. При цьому значення ключа абсолютно не змінюється.
Код Грея
Дана форма запису, по суті, є однокроковим ключем. Тобто в процесі переходу від одного значення до іншого змінюється всього лише один біт інформації. При цьому похибка при зчитуванні даних призводить до переходу від одного положення до іншого з незначним зміщенням по часу. Однак отримання абсолютно невірного результату кутового положення при такому процесі повністю виключається. Перевагою такого коду є його здатність дзеркально відображати інформацію. Наприклад, Інвертуємо старші біти, можна просто міняти напрям відліку. Це відбувається завдяки керуючому входу Complement. При цьому видається значення може бути як зростаючим, так і спадаючим при одному фізичному напрямку обертання осі. Так як інформація, записана в ключі Грея, має виключно кодований характер, який не несе реальних числових даних, то перед подальшою роботою потрібно попередньо перетворити його в звичайну бінарну форму запису. Здійснюється це за допомогою спеціального перетворювача - декодера Грей-Бинар. Цей пристрій легко реалізується на елементарних логічних елементах як апаратним, так і програмним способом.
Код Грея-Експрес
Стандартний однокроковий ключ Грей підходить для рішень, які представлені у вигляді чисел, зведених в ступінь два. У випадках, де необхідно реалізовувати інші рішення, з такої форми запису вирізають і використовують тільки середній ділянку. В результаті зберігається однокрокового ключа. Однак у такому коді початком числового діапазону не є нуль. Він зміщується на задане значення. В процесі обробки даних від генеруючих імпульсів віднімають половину різниці між початковим і зредукованим дозволом.
Подання дробового числа в двійковому ключі з фіксованою комою
У процесі роботи доводиться оперувати не тільки цілими цифрами, але й дробовими. Такі числа можна записувати за допомогою прямих, зворотних і додаткових кодів. Принцип побудови згаданих ключів такий же, як і у цілих. Досі ми вважали, що двійкова кома повинна знаходитися праворуч від молодшого розряду. Але це не так. Вона може розташовуватися і ліворуч від старшого розряду (в такому випадку в якості змінної можна записувати виключно дробові числа), і посередині змінної (можна записувати змішані значення).
Подання двійкового коду з плаваючою комою
Така форма застосовується для запису великих чисел, або навпаки - дуже малих. Як приклад можна привести міжзоряні відстані або розміри атомів і електронів. При обчисленні таких значень довелося б застосовувати двійковий код з дуже великою розрядністю. Однак нам немає необхідності враховувати космічні відстань з точністю до міліметра. Тому форма запису з фіксованою комою в даному випадку неефективна. Для відображення таких кодів використовується алгебраїчна форма. Тобто число записується як мантиса, помножена на десять в ступені, що відображає потрібний порядок числа. Слід знати, що мантиса не повинна бути більше одиниці, а після коми не повинен записуватися нуль.
Це цікаво
Вважається, що двійкове числення було винайдено на початку 18-го століття математиком з Німеччини Готфрідом Лейбніцем. Однак, як нещодавно відкрили вчені, задовго до цього аборигени полінезійського острова Мангарева використовували даний вид арифметики. Незважаючи на те що колонізація практично повністю знищила оригінальні системи числення, вчені відновили складні двійкові і десяткові види рахунку. Крім того, вчений когнитивистов Нуньєс стверджує, що кодування двійковим кодом застосовувалося в стародавньому Китаї ще в 9-му столітті до н. е. Інші стародавні цивілізації, наприклад, індіанці майя, також використовували складні комбінації десяткових і бінарних систем для відстеження тимчасових інтервалів і астрономічних явищ.