1018 в двійковому коді. Двійковий код. Види і довжина двійкового коду. Зворотний двійкового коду

Все про абсолютних енкодер. Від А до Я: види цифрових кодів, особливості кодування / декодування сигналів в абсолютних енкодер, опис роботи абсолютного енкодера, конструкція одно- і багатооборотної енкодера, термінологія використовується в тих. документації на абсолютні енкодери. Абсолютний або інкрементальний? Коли виправдано або неминуче застосування абсолютного енкодера.

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

Історія створення першого абсолютного енкодера обертання і основні відмінності від інкрементного
Перший абсолютний датчик, принцип роботи якого грунтувався на оптоелектронному зчитуванні закодованих растрів, був розроблений німецькою компанією FRABA в 1973 році. У той час як інкрементальні датчики визначають положення тільки щодо якогось певного положення, в абсолютних датчиках інформація про кутовому положенні закодована механічно, наприклад на оптичному диску у вигляді растра містить унікальний код для кожної позиції вала. Таким чином абсолютний енкодер видає інформацію про стан вала, тобто про поточну координату, відразу після включення і формує сигнал як під час обертання, так і в режимі спокою. Абсолютний енкодер не втрачає свого значення при втраті живлення і, якщо в знеструмленому стані вал енкодера був провернуть на певний кут або якусь кількість оборотів, то при появі напруги енкодер відразу видасть нове, фактичне кутове положення вала і фактичний номер обороту. Завдяки цій властивості не потрібно після кожного включення системи виробляти рух механічних частин машини на стартову або як прийнято називати референтну позицію, що є незаперечною перевагою абсолютних енкодерів перед Інкрементальний (імпульсними). Перевагою абсолютного енкодера є також і те, що він не схильний до перешкод. У випадках, коли сигнал з диска не може бути повноцінно прочитаний енкодером, наприклад, якщо вал обертається надто швидко, точний кут повороту буде зареєстрований, коли швидкість обертання зменшиться. Але навіть при швидкому обертанні вала можлива реєстрація положення, хоч і з меншою точністю. Для цього до уваги просто приймається тільки інформація, яка надходитиме від більш старших розрядів, тобто перекручена (за рахунок великої швидкості обертання) інформація, яка надходитиме від молодших розрядів просто ігнорується. Абсолютний енкодер стійкий до вібрацій і іншого роду перешкод, тому що помилка в результаті підрахунку «помилкових» імпульсів, що виникли в результаті, наприклад, вібрації, виключена.

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

Види цифрових кодів і особливості їх використання в системах позиціонування

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

У таблиці нижче представлені дві основні можливості кодування - двоичное  кодування і кодування за методом Грея  (Який далі буде описаний докладніше), а також способи подання інформації в різних системах числення.
  Для різних систем числення в таблиці використовуються такі скорочення:
десяткове  число = decimal = DEC
двійковій-десяткове  число = binary code decimal = BCD
шестнадцатеричное  число = hexadecimal = HEX

Звичайне (двійкове) кодування Кодування за методом Грея
DEC
BCD
HEX
DEC BCD HEX
0 0000 0h 0 0000 0h
1 0001 1h 1 0001 1h
2 0010 2h 3 001 1 3h
3 0011 3h 2 0010 2h
4 0100 4h 6 01 10 6h
5 0101 5h 7 0111 7h
6 0110 6h 5 010 1 5h
7 0111 7h 4 0100 4h
8 1000 8h 12 1 100 Ch
9 100 1 9h 13 1101 Dh
10 1010 Ah 15 111 1 Fh
11 1011 Bh 14 1110 Eh
12 1100 Ch 10 10 10 Ah
13 1101 Dh 11 1011 Bh
14 1110 Eh 9 100 1 9h
15 1111 Fh 8 1000 8h

Двійковій-десятковий код (Binary code decimal)
Двійковій-десятковий код є шірокораспространенние кодом, який може оброблятися безпосередньо мікропроцесором і є основним кодом для обробки цифрових сигналів. Двійковій-десятковий код складається тільки з 0 і 1.
  Найбільше число, яке може бути виражено двійковим кодом, залежить від кількості використовуваних розрядів, тобто від кількості біт в комбінації, що виражає число. Наприклад, для вираження числових значень від 0 до 7 досить мати 3-розрядний, тобто 3-бітовий код.
Двійковій-десятковий код є багатокроковим кодом. Це означає, що при переході від одного положення (значення) в інше можуть змінюватися кілька біт одночасно. Наприклад, число 3 в двійковому коді = 011. Число ж 4 в двійковому коді = 100. Відповідно, при переході від 3 до 4 змінюють свій стан на протилежне все 3 біта одночасно. Зчитування такого коду призводить до того, що через недосконалість зчитувача, наприклад, через неминучі відхилень (допусків) при виробництві кодового диска, зміна інформації від кожної з доріжок окремо ніколи не відбувається одночасно. Як наслідок, при переході від одного числа до іншого, короткочасно (або постійно в разі зупинки вала енкодера безпосередньо на критичній ділянці переходу!) Видається невірна інформація про стан вала. Так, на ділянці вищезгаданого переходу від числа 3 до числа 4 дуже ймовірна видача числа 7, коли, наприклад, старший біт під час переходу поміняв своє значення трохи раніше ніж інші. Таким чином, використання звичайного двійкового коду може з великою ймовірністю спричинить видачу числа, далекого від реального значення, і, як наслідок, непередбачуваного реагування системи управління або контролера на спотворений сигнал енкодера. Щоб уникнути цього застосовується так званий однокроковий код, наприклад, код Грея.

Код Грея (Gray code)
  Код Грея (Gray code - названий на честь американського фізика Frank Gray) ідеально підходить для систем механічного позиціонування, в т.ч. абсолютних енкодерів. Код Грея краще звичайного двійкового тим, що має властивість сталості бінарної комбінації: зміна кодованого числа на одиницю відповідає зміні кодової комбінації тільки в одному  розряді. Таким чином, Грей-код є так званим однокроковим кодом. Він будується на базі довічного за таким правилом: старший розряд залишається без зміни, а кожний наступний розряд інвертується, якщо попередній розряд вихідного двійкового коду дорівнює одиниці.

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

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

  Диск абсолютного енкодера з растром в коді Грея

Перевагою Грей-коду є також його здатність дзеркального відображення інформації. Так, інвертуємо старший біт можна простим чином змінювати напрямок рахунку. Цю функцію виконує, так званий, вхід «Complement». Залежно від потенціалу на цьому вході видається енкодером значення буде зростаючим або спадаючим при одному і тому ж фізичному напрямку обертання осі.
  Оскільки інформація, виражена в коді Грея, має чисто кодований характер, що не несе реальної числової інформації, Його необхідно перед подальшою обробкою спершу перетворити в стандартний бінарний (двійковий) код. Перетворення коду Грея в звичний бінарний код  можна здійснити програмно (в контролері) або використовуючи просту схему з інверторами і логічними елементами «виключає або» (XOR) як показано на схемі нижче:

  Схема перетворення коду Грея в двійковий код

Примітка:
  * Код Грея може логічно перетворюватися в двійковий код коли термінал Vin підключається до 0 V.
  ** Інвертор
  *** Що виключає або

Gray-Excess-Code

Звичайний однокроковий Грей-код підходить для дозволів, які можуть бути представлені у вигляді числа зведеного в ступінь 2. У випадках, де треба реалізувати інші дозволи зі звичайного Грей-коду, вирізається і використовується середній його ділянку. Таким чином, зберігається «однокрокової» коду. Однак числовий діапазон починається не з нуля, а зміщується на певне значення. При обробці інформації від генерованого сигналу віднімається половина різниці між початковим і скороченим дозволом. Такі дозволи як, наприклад, 360 ° для вираження кута часто реалізуються цим методом. Так 9-ти бітний код Грея дорівнює 512 кроків, урізаний з обох сторін на 76 кроків буде дорівнює 360 °.

Пристрій оптичного абсолютного енкодера

Вимірювальна система абсолютного оптичного енкодера складається з наступних основних компонентів:
  - поворотний вал вмонтований на двох підшипниках;
  - кодовий оптичний диск, встановлений на вал;
  - інфрачервоний світлодіод;
  - опто-електронна (фотодіодних) зчитує матриця;
  - схема обробки сигналу.
  Як джерело світла служить світлодіод, інфрачервоні промені якого просвічують кодовий диск і потрапляють на фототранзісторную матрицю, розташовану зі зворотного боку кодового диска. При кожному кроці кутового положення кодового диска темні ділянки коду запобігають потраплянню світла на ті чи інші фототранзистори зчитує матриці. Таким чином, темні / світлі ділянки кожної з доріжок проектуються на прочитує матрицю і, надалі, перетворюються в електричні сигнали. Електричні сигнали, в свою чергу, готуються операційними підсилювачами і вихідними драйверами для видачі у вигляді двійкового коду. Зміни інтенсивності джерела світлового потоку реєструються за допомогою додаткового сенсора і компенсуються електронною схемою.

однооборотний енкодер

Однооборотний (Single - Turn) датчиками називаються датчики (енкодери), які видають абсолютне значення в межах одного обороту, тобто в межах обороту 360 °. Після одного обороту код є повністю пройденим і починається знову з його початкового значення. Ці датчики служать, переважно, для вимірювання кута повороту і застосовуються, наприклад, в антенних системах, ексцентричних колінчастих пресах і т.д. і т.п .. Дозвіл однооборотний енкодера визначається / позначається кількістю біт. Наприклад, у енкодера з дозволом в 16-біт мається на увазі дозвіл в 65536 міток в обороті.

багатооборотний енкодер

Лінійні переміщення припускають необхідним застосування вимірювальної системи реєструє не тільки положення вала в межах одного обороту, а й певної кількості оборотів. Наприклад, в лінійних приводах або при завданнях вимірювання за допомогою зубчастої вимірювальної штанги доречно застосування енкодерів, де додатково до вимірювання кута повороту в межах одного обороту (першою сходинкою енкодера) також відбувається реєстрація кількості оборотів додатковим, свого роду редуктором (утворюючим другу сходинку енкодера) складається з декількох кодових оптичних дисків, утворюючи, таким чином, багатооборотний енкодер (Multi - Turn). Дозвіл багатооборотна енкодера, як правило, позначається окремо як дозвіл в межах одного обороту + кількість оборотів в форматі кількості біт. Так, комбінація цифр в найменуванні енкодера у вигляді, наприклад, 1216 означає дозвіл 12 біт оборотів (4096 оборотів) і 16 біт в обороті (65536 міток на оборот).



Термінологія абсолютних енкодерів

Абсолютний, однооборотний (Singleturn) датчик кута повороту Датчик кута повороту, який для кожної позиції вала, в межах одного  обороту, видає однозначну, кодовану інформацію. Інформація про стан вала зберігається також і при пропажі напруги харчування.
Абсолютний, багатооборотний (Multiturn) датчик кута повороту Датчик кута повороту, який крім інформації про становище валу в межах одного  обороту видає також інформацію про номері обороту  вала. Цей датчик також повністю зберігає інформацію при зникненні напруги живлення, тому що становище валу в межах одного обороту і номер обороту реєструються фізично за допомогою декількох, наприклад, оптичних кодових дисків.
ASI Asynchron-Serielles-Interface. Асинхронний інтерфейс з послідовною передачею даних. Апаратна частина (драйвер) реалізована за стандартом EIA RS485 або RS422.
ASIC Спеціальна мікросхема високої інтеграції, виконана на замовлення. Використовується в багатьох енкодер.
Baudrate Частота (швидкість) передачі даних послідовного інтерфейсу в бітах в секунду.
CAN-Bus Multi-Master-Bus-System Інтерфейс зв'язку, що допускає підключення до мережі (двухпроводной лінії зв'язку) декількох відомих пристроїв. В даний час для CANopen прийняті деякі нормовані протоколи. Для датчиків кута повороту діє - DSP 406.
Частота зміни коду
  (Step freqency)
Кількість міток (кроків) в секунду для абсолютних енкодерів. Для датчиків з роздільною здатністю 13 біт (8192 мітки) і 400 kHz частотою зміни коду, максимальна електрична частота обертання становитиме 3000 min-1.
Datavalid Вихід діагностики для повторної перевірки достовірності посилаються даних.
Напрямок обертання
  (Complement)
Керуючий вхід для установки послідовності даних. Задає напрямок обертання по- або проти- годинникової стрілки при якому дані на виході будуть при обертанні зростати.
точність Відхилення виміряного енкодером кута повороту (положення) від фактичного. Точність залежить, в першу чергу, від точності нанесення малюнка коду на, наприклад, оптичний диск. Ризики / сектори нанесені на диск мають певну нелінійність, тобто нерівномірна щільність міток по колу диска визначає точність енкодера (як правило у відсотках).
Preset (Обнулення) Керуючий вхід, що дозволяє обнулити свідчення на виході абсолютного енкодера в будь-якому місці в усій області дозволу без необхідності механічного позиціонування вала. Для перепрограмувальний абсолютного енкодера за допомогою цього входу може бути програмно виставлено будь-яке значення (Offsetwert).
Profibus DP Master-Slave-Bus-System з двухпроводной лінією зв'язку і апаратним EIA RS485 драйвером. Profibus-DP протокол специфікований для енкодерів.
Resolution per revolution (Дозвіл в обороті) Для однооборотний датчика (Singleturn) вказує максимальну кількість міток в межах одного обороту. Для програмованого енкодера параметр необхідного дозволу в межах одного обороту енкодера може задаватися користувачем програмно. В цьому випадку енкодер перераховує фактичне (фізичне) дозвіл в більш низьке.
Total Resolution
  (Загальний дозвіл)
Загальний дозвіл багатооборотна (Multiturn) енкодера - вказує максимальну кількість міток в межах одного обороту і максимальну кількість обертів.
  Для програмованого енкодера параметр необхідного дозволу в межах одного обороту і кількості оборотів енкодера може задаватися користувачем програмно. В цьому випадку енкодер перераховує фактичне (фізичне) дозвіл в більш низьке.
SSI Synchron-Serielles-Interface. Передача даних від енкодера здійснюється синхронно (біт за бітом) по зовнішньому тактовому імпульсу.
Takt +, Takt - Тактові дроти лінії зв'язку SSI інерфейса для синхронної передачі данних.Takt + і Takt - утворюють гальванически розв'язану (від проводів харчування) лінію зв'язку для прийому енкодером тактового сигналу.
Data +, Data - Провід даних лінії зв'язку SSI інерфейса для синхронної передачі данних.Data + і Data - утворюють гальванически розв'язану (від проводів харчування) лінію зв'язку для видачі енкодером сигналу даних.

Супутні товари та статті



Можна за допомогою стандартних програмних засобів операційної системи  Microsoft Windows. Для цього відкрийте меню «Пуск» на вашому комп'ютері, в меню клікніть «Усі програми», виберіть папку «Стандартні» і знайдіть в ній додаток «Калькулятор». У верхньому меню калькулятора виберіть пункт «Вид», а потім «Програміст». Форма калькулятора перетвориться.

Тепер введіть число для перекладу. У спеціальному вікні під полем введення ви побачите результат перекладу числа в двійковий код. Так, наприклад, після введення числа 216 ви отримаєте результат 1101 1000.

Якщо у вас під рукою немає ні комп'ютера, ні смартфона, ви можете самостійно спробувати перевести число, записане арабськими цифрами, в двійковий код. Для цього необхідно постійно ділити число на 2 до того моменту, поки не залишиться останнього залишку або результат не досягне нуля. Виглядає це так (на прикладі числа 19):

19: 2 = 9 - залишок 1
9: 2 = 4 - залишок 1
4: 2 = 2 - залишок 0
2: 2 = 1 - залишок 0
1: 2 = 0 - досягнуть 1 (ділене менше дільника)

Випишіть залишок у зворотний бік - з самого останнього до найпершого. Ви отримаєте результат 10011 - це і є число 19 в двійковій системі числення.

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

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

Інструкція

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

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

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

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

Використовуйте перший спосіб для приведення в двійковий вид  десяткового числа. Це тим більш зручно, що десятковими числами легше оперувати в розумі.

Наприклад, переведіть число 39 в двійковий відРазделіте 39 на 2 - вийде 19 і 1 в залишку. Зробіть ще кілька ітерацій поділу на 2, поки в кінцевому підсумку залишок не буде дорівнює нулю, а проміжні залишки тим часом записуйте в рядок справа наліво. Підсумковий набір одиниць і нулів і буде вашим числом в двійковому вигляді: 39/2 = 19 → 1; 19/2 = 9 → 1; 9/2 = 4 → 1; 4/2 = 2 → 0; 2/2 = 1 → 0; 1/2 = 0 → 1.Ітак, вийшло двійкове число 111001.

Щоб перевести в двійковий вид число з систем числення з підстав 16 і 8, знайдіть або зробіть самі таблиці відповідних позначень кожного цифрового і символьного елемента цих систем. А саме: 0 0000 1 0001 2 0010 3 0011, 4 0100 5 0101, 6 0110, 7 0111, 8 1000, 9 1001, A 1010, B 1011 C 1100, D 1101, E 1110, F 1111 .

Кожен знак вихідного числа запишіть відповідно до даних цієї таблиці. Приклади: Вісімкове число 37 = = 00110111 в двійковому вигляді; Шістнадцяткове число 5FEB12 = = 010111111110101100010010 в двійковій системі.

Відео по темі

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



Вам знадобиться

  • вміння скорочувати дроби

Інструкція

Якщо знаменник дробу дорівнює 10, 100 або, в загальному випадку, 10 ^ n, де n - натуральне число, то така дріб може бути записана у вигляді десяткового. Кількість знаків після коми визначає знаменник такої дробу. Він дорівнює 10 ^ n, де n - кількість знаків. Значить, наприклад, 0,3 можна записати як 3/10, 0,19 як 19/100 і.т.д.

Нехай тепер ціла частина десяткового числа  не дорівнює нулю. Тоді таке число можна перевести або в неправильну дріб, де чисельник більше знаменника, або в змішане число. Наприклад: 1,7 = 1 + (7/10) = 17/10, 2,29 = 2+ (29/100) = 229/100.

Якщо в кінці десяткового дробу варто один або більше нулів, то ці нулі можна відкинути і переводити число з рештою кількістю знаків після коми в дробове. Приклад: 1,7300 = 1,73 = 173/100.

Відео по темі

джерела:

  • десяткові дроби
  • як перевести дробове

Основна частина програмних продуктів для Android написана на мові програмування (ЯП) Java. Розробники системи також пропонують програмістам фреймворки для проектування додатків на C / C ++, Python і Java Script через бібліотеку jQuery і PhoneGap.



Java для Android

Основною мовою для розробки програм на Android є Java. Щоб створити розмітку додатків і елементи інтерфейсу, використовується мова розмітки XML. Писати програми для Android на Java можна практично в будь-який програмному середовищі, однак розробники операційної системи пропонують програмістам використовувати Eclipse. У функціонал компілятора включений режим створення мобільних додатків через плагін Android Development Tools (ADT). Аналогічний плагін є для таких популярних середовищ, як NetBeans та IntelliJ IDEA. Крім цього, для написання коду на Java може використовуватися пакет Motodev Studio for Android, створений на основі Eclipse і дозволяє програмувати безпосередньо на основі Google SDK.

Для написання деяких програм і ділянок коду, виконання яких вимагає максимальної швидкості, можуть бути використані бібліотеки C / C ++. Використання цих ЯП можливо через спеціальний пакет для розробників Android Native Development Kit, орієнтований спеціально для створення додатків з використанням C ++.

Пакет Embarcadero RAD Studio XE5 також дозволяє писати нативні додатки для Android. При цьому для тестування програми досить одного Android-пристрої або встановленого на комп'ютері емулятора. Розробнику також пропонується можливість писати на C / C ++ низькорівневі модулі шляхом використання деяких стандартних бібліотек Linux і розробленої для Android бібліотеки Bionic.

Крім C / C ++, програмісти мають можливість використовувати C #, кошти якого стануть в нагоді при написанні нативних програм для платформи. Робота на C # з Android можливо через інтерфейс Mono або Monotouch. Проте первісна ліцензія на застосування C # обійдеться програмісту в $ 400, що актуально тільки при написанні великих програмних продуктів.

PhoneGap

PhoneGap дає можливість розробляти програми з використанням таких мов, як HTML, JavaScript (jQuery) і CSS. При цьому програми, створювані на цій платформі, підходять для інших операційних систем

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

gastroguru © 2017