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

На відміну від звичного для нас десяткового кодування чисел, тобто коду з основою десять, при двійковому кодуванні на основі коду лежить число два (рис. 2.9). Тобто кожна цифра коду (кожен розряд) двійкового коду може приймати не десять значень (як у десятковому коді: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9), а лише два - 0 і 1. Система позиційного запису залишається такою самою, тобто праворуч пишеться наймолодший розряд, а зліва - найстарший. Але якщо в десятковій системі вага кожного наступного розряду більша за вагу попереднього в десять разів, то в двійковій системі (при двійковому кодуванні) - у два рази. Кожен розряд двійкового коду називається бітом (від англійського "Binary Digit" - "двійкове число").

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

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

З таблиці видно, що необхідну кількість розрядів двійкового коду значно більше, ніж необхідну кількість розрядів десяткового коду. Максимально можливе число при кількості розрядів, що дорівнює трьом, становить при десятковій системі 999, а при двійковій - лише 7 (тобто 111 у двійковому коді). У загальному випадку n-розрядне двійкове число може набувати 2 n різних значень, а n-розрядне десяткове число- 10 n значень. Тобто запис великих двійкових чисел (з кількістю розрядів більше десяти) стає не надто зручним.

Таблиця 2.3. Відповідність чисел у десятковій та двійковій системах
Десяткова система Двійкова система Десяткова система Двійкова система

Для того, щоб спростити запис двійкових чисел, було запропоновано так звану шістнадцяткову систему (16-річне кодування). У цьому випадку всі двійкові розряди розбиваються на групи по чотири розряди (починаючи з молодшого), а вже кожна група кодується одним символом. Кожна така група називається напівбайтом(або ніблом, зошитом), а дві групи (8 розрядів) – байтом. З табл. 2.3 видно, що 4-розрядне двійкове число може набувати 16 різних значень (від 0 до 15). Тому потрібне число символів для шістнадцяткового коду теж дорівнює 16, звідки і походить назва коду. Як перші 10 символів беруться цифри від 0 до 9, а потім використовуються 6 початкових великих букв латинського алфавіту: A, B, C, D, E, F.

Мал. 2.10.Двійковий та 16-річний запис числа

У табл. 2.4 наведено приклади 16-річного кодування перших 20 чисел (у дужках наведено двійкові числа), але в рис. 2.10 показаний приклад запису двійкового числа у 16-річному вигляді. Для позначення 16-річного кодування іноді застосовують літеру "h" або "H" (від англійського Hexadecimal) в кінці числа, наприклад запис A17F h позначає 16-річне число A17F. Тут А1 є старший байт числа, а 7F - молодший байт числа. Все число (у нашому випадку – двобайтове) називається словом.

Таблиця 2.4. 16-річна система кодування
Десяткова система 16-річна система Десяткова система 16-річна система
0 (0) A (1010)
1(1) B (1011)
2 (10) C (1100)
3 (11) D (1101)
4 (100) E (1110)
5 (101) F (1111)
6 (110) 10 (10000)
7 (111) 11 (10001)
8 (1000) 12 (10010)
9 (1001) 13 (10011)

Для переведення 16-річного числа до десяткового необхідно помножити значення молодшого (нульового) розряду на одиницю, значення наступного (першого) розряду на 16, другого розряду на 256 (16 2) тощо, а потім скласти всі твори. Наприклад, візьмемо число A17F:

A17F=F*16 0 + 7*16 1 + 1*16 2 + A*16 3 = 15*1 + 7*16+1*256+10*4096=41343

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

Крім розглянутих кодів існує також і так зване двійково-десяткове уявлення чисел. Як і в 16-річному коді, у двійково-десятковому коді кожному розряду коду відповідає чотири двійкові розряди, однак кожна група з чотирьох двійкових розрядів може приймати не шістнадцять, а лише десять значень, що кодуються символами 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Тобто одному десятковому розряду відповідає чотири двійкові. В результаті виходить, що написання чисел у двійково-десятковому коді нічим не відрізняється від написання у звичайному десятковому коді (табл. 2.6), але в реальності це лише спеціальний двійковий код, кожен розряд якого може приймати тільки два значення: 0 і 1. Двійково-десятковий код іноді дуже зручний для організації десяткових цифрових індикаторівта табло.

Таблиця 2.6. Двійково-десяткова система кодування
Десяткова система Двійково-десяткова система Десяткова система Двійково-десяткова система
0 (0) 10 (1000)
1(1) 11 (1001)
2 (10) 12 (10010)
3 (11) 13 (10011)
4 (100) 14 (10100)
5 (101) 15 (10101)
6 (110) 16 (10110)
7 (111) 17 (10111)
8 (1000) 18 (11000)
9 (1001) 19 (11001)

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

Розглянемо, наприклад, додавання двох 4-розрядних двійкових чисел. Нехай треба скласти число 0111 (десяткове 7) та 1011 (десяткове 11). Додавання цих чисел не складніше, ніж у десятковому поданні:

При додаванні 0 і 0 отримуємо 0, при додаванні 1 і 0 отримуємо 1, при додаванні 1 і 1 отримуємо 0 і перенесення в наступний розряд 1. Результат - 10010 (десяткове 18). При додаванні будь-яких двох n-розрядних двійкових чисел може вийти n-розрядне або (n+1)-розрядне число.

Так само проводиться віднімання. Нехай від 10010 (18) треба відняти число 0111 (7). Записуємо числа з вирівнюванням по молодшому розряду і віднімаємо так само, як у випадку десяткової системи:

При відніманні 0 з 0 отримуємо 0, при відніманні 0 з 1 отримуємо 1, при відніманні 1 з 1 отримуємо 0, при відніманні 1 з 0 отримуємо 1 і позику 1 в наступному розряді. Результат – 1011 (десяткове 11).

При відніманні можливе отримання негативних чисел, тому необхідно використовувати двійкове уявлення негативних чисел.

Для одночасного уявлення як двійкових позитивних, і двійкових негативних чисел найчастіше використовується так званий додатковий код. Негативні числа в цьому коді виражаються таким числом, яке складено з позитивним числом такої ж величини, дасть в результаті нуль. Щоб отримати негативне число, треба поміняти все біти того ж позитивного числа на протилежні (0 на 1, 1 на 0) і додати до результату 1. Наприклад, запишемо число –5. Число 5 у двійковому коді виглядає 0101. Замінюємо біти на протилежні: 1010 і додаємо одиницю: 1011. Підсумовуємо результат з вихідним числом: 1011 + 0101 = 0000 (перенесення до п'ятого розряду ігноруємо).

Негативні числа у додатковому коді відрізняються від позитивних значенням старшого розряду: одиниця у старшому розряді визначає негативне число, а нуль – позитивне.

Крім стандартних арифметичних операцій, у двійковій системі числення використовуються і деякі специфічні операції, наприклад, додавання за модулем 2. Ця операція (позначається A) є побітовою, тобто ніяких переносів з розряду в розряд і позик у старших розрядах тут не існує. Правила додавання за модулем 2 такі: , , . Ця ж операція називається функцією Виключне АБО. Наприклад, підсумуємо по модулю 2 два двійкові числа 0111 і 1011:

Серед інших побітових операцій над двійковими числами можна відзначити функцію І та функцію АБО. Функція І дає в результаті одиницю лише тоді, коли у відповідних бітах двох вихідних чисел обидві одиниці, інакше результат -0. Функція АБО дає в результаті одиницю тоді, коли хоча б один із відповідних бітів вихідних чисел дорівнює 1, інакше результат 0.

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. У правильності цього методу ви можете переконатись, поглянувши на таблицю кодів.

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

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

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

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

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

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

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

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

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

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

    До зустрічі.

    Tool to make binary conversions. Бінарний код є numerical system using base 2 used in informatics, symbols used in binary notation are generally zero and one (0 and 1).

    Answers to Questions

    Ви можете edit this Q&A (add new info, improve translation, etc.) " itemscope="" itemtype="http://schema.org/Question">

    How to convert a number in binary?

    Включити номер до binary (з ceroes and ones) consists in from base 10 to base 2 (natural binary code)

    Example: 5 (base 10) = 1*2^2+0*2^1+1*2^0 = 101 (base 2)

    Метод сполучення в виконанні successive divisions за 2 і застерігаючи реmainder (0 or 1 ) in reverse order.

    Example: 6/2 = 3 remains 0, then 3/2 = 1 remains 1, then 1/2 = 0 remains 1. in binary.

    Ви можете edit this Q&A (add new info, improve translation, etc.) " itemscope="" itemtype="http://schema.org/Question">

    How to convert a text у binary?

    Associate with each letter of alphabet a number, for example by using the code or the . Це буде замінити будь-який лист за номером, що може бути спрямований на binary (see above).

    Example: AZ is 65,90 () so 1000001,1011010 in binary

    Подібно до binary to text translation, convert the binary to number and the association that number with letter in the desired code.

    Ви можете edit this Q&A (add new info, improve translation, etc.) " itemscope="" itemtype="http://schema.org/Question">

    How to translate binary

    The binary does no directly translate, any number encoded in binary remains a number. На іншій руці, вона є спільним в комп'ютерній школі для використання binary до store text, для прикладу з використанням table, які поєднуються з номером з Letter. An translator is available on dCode.

    Ви можете edit this Q&A (add new info, improve translation, etc.) " itemscope="" itemtype="http://schema.org/Question">

    What is a bit?

    А bit (contraction of binary digit) є символом в binary notation: 0 or 1.

    Ви можете edit this Q&A (add new info, improve translation, etc.) " itemscope="" itemtype="http://schema.org/Question">

    What is 1"s complement?

    In informatics, one's complement is writing a number negatively inversing 0 and 1.

    Example: 0111 becomes 1000, so 7 becomes -7

    Ви можете edit this Q&A (add new info, improve translation, etc.) " itemscope="" itemtype="http://schema.org/Question">

    What is 2"s complement?

    In informatics, один"комплект is writing a number negatively inversing 0 and 1 and adding 1.

    Example: 0111 becomes 1001

    Ask a new question

    Source code

    dCode retains ownership of source code of script Binary Code online. Except explicit open source licenci (indicated Creative Commons / free), any algorithm, applet, snippet, software (converter, solver, encryption/decryption, encoding/decoding, ciphering/deciphering, translator), або any function (convert, solve, decry , encrypt, decipher, cipher, decode, code, translate) написані в будь-якій інформаційній англійській мові (PHP, Java, C#, Python, Javascript, Matlab, etc.), які dCode owns rights не буде виконано для безкоштовного. Для того, щоб додати online Binary Code script for offline use on PC, iPhone or Android, ask for price quote on

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

    Двійкова система ґрунтується на двох цифрах – 1 та 0, відповідних станах включення та вимикання, які ваш комп'ютер може зрозуміти. Ймовірно, ви знайомі із десятковою системою. Вона використовує десять цифр - від 0 до 9, а потім переходить до наступного порядку, щоб сформувати двоцифрові числа, причому цифра з кожного наступного порядку в десять разів більша, ніж попередня. Двійкова система аналогічна, причому кожна цифра вдвічі більша, ніж попередня.

    Підрахунок у двійковому форматі

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

    1111 (у двійковому форматі) = 8 + 4 + 2 + 1 = 15 (у десятковій системі)

    Облік 0 дає 16 можливих значень для чотирьох двійкових бітів. Перейдіть на 8 біт, і ви отримаєте 256 можливих значень. Це займає набагато більше місця для представлення, оскільки чотири цифри у десятковій формі дають нам 10 000 можливих значень. Звичайно, бінарний код займає більше місця, але комп'ютери розуміють двійкові файли набагато краще, ніж десяткову систему. І для деяких речей, таких як логічна обробка, двійковий код кращий за десятковий.

    Слід сказати, що існує ще одна базова система, яка використовується у програмуванні: шістнадцяткова. Хоча комп'ютери не працюють у шістнадцятковому форматі, програмісти використовують її для подання двійкових адрес у форматі, що читається, при написанні коду. Це з тим, що дві цифри шістнадцяткового числа можуть бути цілий байт, тобто замінюють вісім цифр у двійковому форматі. Шістнадцяткова система використовує цифри 0-9, а також літери від A до F, щоб отримати додаткові шість цифр.

    Чому комп'ютери використовують двійкові файли

    Коротка відповідь: апаратне забезпечення та закони фізики. Кожен символ у вашому комп'ютері є електричним сигналом, і в перші дні обчислень вимірювати електричні сигнали набагато складніше. Було розумніше розрізняти лише «включений» стан, представлений негативним зарядом, і «вимкнений» стан, представлений позитивним зарядом.

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

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

    Ось схема типового транзистора:

    По суті, він дозволяє струму текти від джерела до стоку, якщо у воротах є струм. Це формує двійковий ключ. Виробники можуть створювати ці транзистори неймовірно малими – аж до 5 нанометрів або розміром дві нитки ДНК. Це те, як працюють сучасні процесори, і навіть вони можуть страждати від проблем з розрізненням включеного та вимкненого стану (хоча це пов'язано з їх нереальним молекулярним розміром, схильним до дивностям квантової механіки).

    Чому тільки двійкова система

    Тому ви можете подумати: «Чому лише 0 та 1? Чому б не додати ще одну цифру? Хоча частково це пов'язано з традиціями створення комп'ютерів, додавання ще однієї цифри означало б необхідність виділяти ще один стан струму, а не тільки «вимкнений» або «включений».

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

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

    Таким чином, бінарна математика простіше для комп'ютера, ніж будь-що ще. Двійкова логіка легко перетворюється на двійкові системи, причому True і False відповідають станам Вкл і Вимк .

    Бінарна таблиця істинності, що працює на двійковій логіці, матиме чотири можливі виходи для кожної фундаментальної операції. Але оскільки потрійні ворота використовують три входи, потрійна таблиця істинності мала б 9 або більше. У той час, як бінарна система має 16 можливих операторів (2^2^2), трійкова система мала б 19683 (3^3^3). Масштабування стає проблемою, оскільки, хоча трійкість ефективніша, вона також експоненційно складніша.

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

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

    Як складається двійкова форма запису?

    Давайте розберемося, як формується такий ключ. Один розряд двійкового коду може містити лише два стани: нуль і одиницю (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 столітті до н. е. Інші стародавні цивілізації, наприклад, індіанці майя, також використовували складні комбінації десяткових та бінарних систем для відстеження часових інтервалів та астрономічних явищ.