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

Як комп'ютер примудряється обробляти таку різноманітну інформацію?
Секрет полягає у двійковій системі обчислення. Всі дані надходять у комп'ютер, представлені у вигляді одиниць і нулів, кожному з яких відповідає один стан електропроводу: одиницям - висока напруга, нулям - низька або одиницям - наявність напруги, нулям - його відсутність. Перетворення даних у нулі та одиниці називається двійковою конверсією, а остаточне їх позначення – двійковим кодом.
У десятковому позначенні, заснованому на десятковій системі обчислення, яка використовується в повсякденному житті, числове значення представлене десятьма цифрами від 0 до 9, і кожне місце в числі має цінність у десять разів вищу, ніж місце праворуч від нього. Щоб уявити число більше дев'яти в десятковій системі обчислення, його місце ставиться нуль, але в наступне, більш цінне місце зліва - одиниця. Так само в двійковій системі, де використовуються лише дві цифри - 0 і 1, кожне місце вдвічі цінніше, ніж місце праворуч від нього. Таким чином, у двійковому коді тільки нуль і одиниця можуть бути зображені як одномісні числа, і будь-яке число більше одиниці вимагає вже два місця. Після нуля і одиниці наступні три двійкові числа це 10 (читається один-нуль) і 11 (читається один-один) і 100 (читається один-нуль). 100 двійкової системи еквівалентно 4 десятковій. На верхній таблиці праворуч показані інші двійково-десяткові еквіваленти.
Будь-яке число може бути виражене у двійковому коді, просто воно займе більше місця, ніж у десятковому позначенні. У двійковій системі можна записати і абетку, якщо за кожною літерою закріпити певне двійкове число.

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

Біти та байти

Найменша одиниця в комп'ютерній обробці, біт - це одиниця даних, яка може мати одну з двох можливих умов. Наприклад, кожна з одиниць і нулів (праворуч) означає 1 біт. Біт можна уявити й іншими способами: наявністю або відсутністю електричного струму, дірочкою та її відсутністю, напрямом намагнічування вправо чи вліво. Вісім бітів становлять байт. 256 можливих байтів можуть представити 256 символів та символів. Багато комп'ютерів обробляють байт даних одночасно.

Двійкова конверсія. Чотирьохцифровий двійковий код може подати десяткові числа від 0 до 15.

Кодові таблиці

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

Частина таблиці коду ASCII

Оскільки є найпростішим і відповідає вимогам:

  • Чим менше значень існує у системі, тим простіше виготовити окремі елементи, що оперують цими значеннями. Зокрема, дві цифри двійкової системи числення можуть бути представлені багатьма фізичними явищами: є струм - немає струму, індукція магнітного поля більше порогової величини чи ні тощо.
  • Чим менша кількість станів у елемента, тим вища завадостійкість і тим швидше він може працювати. Наприклад, щоб закодувати три стани через величину індукції магнітного поля, потрібно ввести два порогові значення, що не сприятиме перешкодостійності та надійності зберігання інформації.
  • Двійкова арифметика досить проста. Найпростішими є таблиці складання та множення - основних дій над числами.
  • Можливе застосування апарату алгебри логіки до виконання побітових операцій над числами.

Посилання

  • Онлайн калькулятор для переведення чисел з однієї системи числення до іншої

Wikimedia Foundation. 2010 .

Дивитись що таке "Бінарний код" в інших словниках:

    2 бітний код Грея 00 01 11 10 3 бітний код Грея 000 001 011 010 110 111 101 100 4 бітний код Грея 0000 0001 0011 0010 0110 01 01 01 1 1110 1010 1011 1001 1000 Код Грея система числення, в якій два сусідніх значення … … Вікіпедія

    Код сигнальної точки (англ. Signal Point Code (SPC)) сигнальної системи 7 (SS7, ГКС 7) це унікальна (в домашній мережі) адреса вузла, що використовується на третьому рівні MTP (маршрутизація) в телекомунікаційних ГКС 7 мережах для ідентифікації … Вікіпедія

    У математиці безквадратним називається число, яке не ділиться на жодний квадрат, крім 1. Наприклад, 10 безквадратне, а 18 ні, оскільки 18 ділиться на 9 = 32. Початок послідовності безквадратних чисел таке: 1, 2, 3, 5, 6, 7, … … Вікіпедія

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

    Цей термін має й інші значення, див. Python (значення). Python Клас мови: му … Вікіпедія

    У вузькому значенні слова в даний час під словосполученням розуміється «Замах на систему безпеки», і схиляється скоріше до змісту наступного терміна «Крекерська атака». Це сталося через спотворення сенсу самого слова «хакер». Хакерська… … Вікіпедія

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

Двійкова система ґрунтується на двох цифрах – 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). Масштабування стає проблемою, оскільки, хоча трійкість ефективніша, вона також експоненційно складніша.

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

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

Для перетворення тексту на бінарне поданнявведіть текст у ліве віконце і натисніть TEXT->BIN у правому вікні з'явиться його двійкове уявлення.

Для перетворення бінарного коду на текствведіть код у праве віконце і натисніть BIN->TEXT у лівому вікні з'явиться його символьне уявлення.

У разі якщо переклад бінарного коду в текстабо навпаки не вийшов – перевірте коректність ваших даних!

Оновлення!

Тепер доступне зворотне перетворення тексту вигляду:

у нормальний вигляд. Для цього потрібно поставити галочку: "Замінити 0 пробілами, а 1 заповнювачем █". Потім вставте текст у праве віконце: "Текст у бінарній виставі" і натисніть кнопку під ним "BIN->TEXT".

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

██ █ █ ███████ █ ██ ██ █ █ ███ ██ █ █ ██ █ ██ █ █ ██ █ ███ █ ██ █ █ ██ █ █ ███ ██ █ █ ███ ██ █ ██

а на червоному тлі:

██ █ █ ███████ █ ██ ██ █ █ ███ ██ █ █ ██ █ ██ █ █ ██ █ ███ █ ██ █ █ ██ █ █ ███ ██ █ █ ███ ██ █ ██

бачите скільки прогалин наприкінці можна втратити?

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

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