Двійкова система числення — це позиційна система числення, основа якої дорівнює двом. Для запису чисел у ній використовують два символи: зазвичай 0 (нуль) та 1 (одиниця). Числа, подані в цій системі, називають двійковими або бінарними числами.
Для запису числа у двійковій системі числення його подають як суму послідовних степенів числа 2 з коефіцієнтами 0 або 1:
Завдяки простоті реалізації в електричних схемах, двійкова система числення набула поширення в обчислювальних пристроях.
Представлення Двійкова система числення є позиційною системою числення, основа якої дорівнює двом. Завдяки тому, що таку систему доволі просто використовувати у електричних схемах, вона набула поширення в обчислювальних пристроях.
Двійкове число можна подати як послідовність будь-яких об'єктів, які можуть перебувати в одному з двох можливих станів. Наприклад: числа, що можуть набувати значень 0 або 1: 1010011; позиції, на яких можуть стояти хрестики або нулики: хохоохх; вузли електричної схеми, через які може проходити або ні струм; ділянки магнітної стрічки, які можуть бути чи не бути намагніченими.
Зазвичай двійкові числа записують за допомогою нулів та одиниць. Перші комп'ютери відображали числа рядом електричних лампочок (кожна з яких могла світитися або бути вимкненою).
Переваги наявність мікроелектронних схем з двома стійкими станами; подання інформації за допомогою тільки двох станів надійне і завадостійке; для виконання логічних перетворень інформації можна застосувати апарат булевої алгебри; простота виконання арифметичних операцій. Недолік швидке зростання кількості розрядів, необхідних для запису чисел.
Лічба у двійковій системі Рахувати у двійковій системі не складніше, ніж у будь-якій іншій. Скажімо, у десятковій системі, коли число в поточному розряді сягає десяти, то розряд обнуляється і одиниця додається до старшого. Наприклад: 9 + 1 = 10, 44 + 7 = 51; Аналогічно у двійковій системі: коли число в розряді сягає двох — розряд обнуляється і одиниця додається до старшого розряду. Тобто: 1 + 1 = 10. Зверніть увагу, «10» у цьому записі — двійкове число, у десятковій системі це число записується як «2». А десяткове 9 + 1 = 10 у двійковій системі буде виглядати так: 1001 + 1 = 1010 (після додавання одиниці число в останньому розряді дорівнює двом, тож розряд обнуляється і одиниця додається до передостаннього (старшого) розряду).
Таблиця додавання +010011110 (перенесення у старший розряд)
Приклад додавання «стовпчиком» (1410 + 510 = 1910 або 11102 + 1012 = 100112): +111010110011
Таблиця віднімання -0100111 (позика зі старшого розряду)0
Таблиця множення ×01000101
Приклад множення «стовпчиком» (1410 · 510 = 7010 або 11102 · 1012 = 10001102): ×1110101 +111011101000110
Приклади Приклад 1. Обчислити кількість інформації в слові «Інформатика» за умови, що для кодування використовується абетка з 32 символів.
Розв'язок. Обчислимо кількість інформації, що відповідає 1 символу при використанні 32-значного алфавіту : 32 = 2х, х = 5 біт. Слово «Інформатика» складається з 11 символів, отримуємо 11· 5 = 55 (біт).
Приклад 2. Растровий графічний файл містить чорно-біле зображення з 2 градаціями кольору (чорний і білий) розміром 800×600 точок. Визначте необхідний розмір цього файлу у байтах для кодування кольору точок (без урахування службової інформації про формат, авторство, способи стиснення тощо).
Розв'язок. Оскільки сказано, що зображення двоколірне, отже, для вказівки кольору однієї точки досить двох значень, що кодують білий або чорний колір. Два значення можуть бути закодовані одним бітом. Обсяг графічного файлу розраховується за формулою V=ik, де i — глибина кольору, k — кількість точок.
Тоді розмір графічного файлу дорівнює 800·600·1 біт = 480 000 бітів, враховуючи, що 8 бітів = 1 байт отримуємо 480 000 / 8 = 60 000 байтів. Насправді в графічних документах окрім опису кольорів точок міститься ще і службова інформація (про формат запису, авторські права, способи стиснення).
Перетворення між двійковою та іншими системами числення
Десяткова система числення Для перетворення з двійкової системи в десяткову використовують таку таблицю степенів основи 2: 10245122561286432168421
Перетворення двійкових чисел у десяткові Нехай дано двійкове число 1100012. Для перетворення в десяткове запишемо його як суму степенів 2 за розрядами: 1 · 25 + 1 * 24 + 0 · 23 + 0 · 22 + 0 · 21 + 1 · 20 = 49 Або: 1 · 32 + 1 · 16 + 0 · 8 + 0 · 4 + 0 · 2 + 1 · 1 = 49 Також це можна записати у вигляді таблиці: 5122561286432168421110001 +32 +16 +0 +0 +0 +1 Рухаючись справа наліво, під кожною двійковою одиницею напишемо її десятковий еквівалент, післа чого додамо отримані десяткові числа. Отже, двійкове число 1100012 рівнозначне десятковому 4910.
Перетворення дробових двійкових чисел у десяткові Переведемо число 1011010,1012 у десяткову систему. Запишемо число так: 1 · 26 + 0 · 25 + 1 · 24 + 1 · 23 + 0 · 22 + 1 · 21 + 0 · 20 + 1 · 2-1 + 0 · 2-2 + 1 · 2-3 = 90,625 Або: 1 · 64 + 0 · 32 + 1 · 16 + 1 · 8 + 0 · 4 + 1 · 2 + 0 · 1 + 1 · 0,5 + 0 · 0,25 + 1 · 0,125 = 90,625 Або за допомогою таблиці: 64321684210.50.250.1251011010,101 +64 +0 +16 +8 +0 +2 +0 +0.5 +0 +0.125
Перетворення методом Горнера
Для того, щоб перетворювати числа з двійкової в десяткову систему методом Горнера, треба підсумувати цифри зліва направо, множачи раніше отриманий результат на основу системи (в даному випадку 2). Методом Горнера зазвичай переводять числа з двійкової в десяткову систему числення. Зворотна операція складна, оскільки вимагає навичок додавання і множення в двійковій системі числення. Наприклад, двійкове число 10110112 переводиться в десяткову систему так:
0*2 + 1 = 1
1*2 + 0 = 2
2*2 + 1 = 5
5*2 + 1 = 11
11*2 + 0 = 22
22*2 + 1 = 45
45*2 + 1 = 91
Тобто в десятковій системі числення це число записують як 91.
Перетворнення десяткових чисел у двійкові Припустимо, нам потрібно перетворити число 21 у двійкове. Скористаємося такою процедурою:
19 : 2 = 10 з остачею 1,
9 : 2 = 5 без остачі 1,
4 : 2 = 2 з остачею 0,
2 : 2 = 1 без остачі 0,
1 : 2 = 0 з остачею 1.
Отже, ми ділимо кожну частку на 2 і записуємо остачу. Продовжуємо ділення, поки частка стане рівною 0. Результат записуємо справа наліво. Тобто остання остача (1) буде найлівішою у двійковому записі результату і т. д. Отже, число 19 у двійковому записі: 10011.
Перетворення дробових десяткових чисел у двійкові Якщо у початковому числі є ціла частина, то її перетворюємо окремо від дробової. Переведення дробового числа з десяткової системи числення у двійкову здійснюємо за таким алгоритмом: Дріб множимо на основу двійкової системи числення (2); В отриманому добутку виділяємо цілу частину, яку приймаємо за старший розряд числа в двійковій системі числення; Алгоритм завершуємо, якщо дробова частина отриманого добутку дорівнює нулю або якщо досягнуто необхідної точності обчислень. В іншому випадку обчислення тривають над дробовою частиною добутку. Приклад: Переведемо десяткове дробове число 206,116 у дробове двійкове число.
Перетворення цілої частини дає 20610=110011102 за раніше описаним алгоритмом. Дробову частину 0,116 множимо на основу 2, заносячи цілі частини добутку в розряди дробової частини шуканого дробового двійкового числа:
0,116 • 2 = 0,232
0,232 • 2 = 0,464
0,464 • 2 = 0,928
0,928 • 2 = 1,856
0,856 • 2 = 1,712
0,712 • 2 = 1,424
0,424 • 2 = 0,848
0,848 • 2 = 1,696
0,696 • 2 = 1,392
0,392 • 2 = 0,784
і т. д.
Отже, 0,11610 ≈ 0,00011101102
Маємо: 206,11610 ≈ 11001110,0001110110
Шістнадцяткова система числення
016 = 010 = 08 0 0 0 0 116 = 110 = 18 0 0 0 1 216 = 210 = 28 0 0 1 0 316 = 310 = 38 0 0 1 1 416 = 410 = 48 0 1 0 0 516 = 510 = 58 0 1 0 1 616 = 610 = 68 0 1 1 0 716 = 710 = 78 0 1 1 1 816 = 810 = 108 1 0 0 0 916 = 910 = 118 1 0 0 1 A16 = 1010 = 128 1 0 1 0 B16 = 1110 = 138 1 0 1 1 C16 = 1210 = 148 1 1 0 0 D16 = 1310 = 158 1 1 0 1 E16 = 1410 = 168 1 1 1 0 F16 = 1510 = 178 1 1 1 1 Двійкове число легко перетворити в шістнадцяткову систему числення і навпаки. Це пояснюється тим, що основа шістнадцяткової системи числення (16) є степенем основи двійкової системи (2). Точніше, 16 = 2⁴, тому для подання однієї цифри шістнадцяткової системи числення потрібно чотири цифри двійкової системи, як показано в таблиці.
Щоб перетворити шістнадцяткове число в його двійковий еквівалент, слід просто підставити відповідні двійкові цифри:
3A16 = 0011 10102 E716 = 1110 01112
Щоб перетворити двійкове число на його шістнадцятковий еквівалент, слід розділити його на групи з чотирьох бітів. Якщо кількість бітів не кратна чотирьом, ліворуч слід додати потрібну кількість бітів 0 (так зване ). Наприклад:
10100102 = 0101 0010 згруповано з доповненням = 5216 110111012 = 1101 1101 згруповано = DD16
Вісімкова система числення
Число з двійкової системи числення також легко перетворити у вісімкову, оскільки вісімкова використовує основу 8, яка є степенем двійки (а саме 23, тому для подання вісімкової цифри потрібно рівно три двійкові цифри). Відповідність між вісімковими та двійковими числами така ж, як і для перших восьми цифр шістнадцяткової системи у таблиці вище. Двійкове 000 еквівалентне вісімковій цифрі 0, двійкове 111 еквівалентне вісімковій 7 тощо. Вісімкове Двійкове 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111 Перетворення з вісімкової системи числення у двійкову відбувається так само, як і для шістнадцяткової системи числення:
658 = 110 1012 178 = 001 1112
А з двійкової системи числення у вісімкову:
1011002 = 101 1002 згруповано = 548 100112 = 010 0112 згруповано з доповненням = 238
Використання
У цифрових пристроях Двійкова система використовується в цифрових пристроях, оскільки відповідає таким вимогам: Що менше значень існує в системі, то простіше виготовити окремі елементи, які оперують цими значеннями. Зокрема, дві цифри двійкової системи числення можна легко подати багатьма фізичними явищами: наявний струм (струм більший від порогової величини) — відсутній струм (струм менший від порогової величини), індукція магнітного поля більша від порогової величини чи ні тощо. Що меншу кількість станів має елемент, то вища його надійність і швидше може працювати пристрій. Наприклад, щоб закодувати три стани через величину напруги, струму або індукції магнітного поля, потрібно ввести два граничних значення і два компаратори. Двійкова арифметика є досить простою. Зокрема, простими є таблиці додавання і множення — основних дій над числами.
У цифровій електроніці одному двійковому розряду в двійковій системі числення відповідає (очевидно) один двійковий розряд двійкового регістра, тобто двійковий тригер з двома станами (0, 1).
У обчислювальній техніці широко використовується запис від'ємних двійкових чисел у доповняльному коді. Наприклад, число −510 можна записати як −1012 але в 32-бітовому комп'ютері воно зберігатиметься як 111111111111111111111111111110112.
В англійській системі числення
При вказівці лінійних розмірів у дюймах за традицією використовують двійкові дроби, а не десяткові, наприклад: 5¾″, 715/16″, 311/32″ тощо.
Використання різних кодувань У кодуванні ASCII на кожен символ відводиться 7 біт. У розширеному ASC II — 8 біт.
У кодуванні Unicode на кожен символ відводиться від 8 до 32 біт (від 1 до 4 байтів).
Приклад 1. Повідомлення містить 4096 символів. Розмір повідомлення при використанні рівномірного коду склав 1/512 Мбайт. Знайти потужність алфавіту, за допомогою якого записано це повідомлення.
Розв'язання. Потужність алфавіту — кількість символів в алфавіті. Переведемо інформаційний розмір повідомлення у біти.
Для кодування одного символу відводиться
Тоді потужність алфавіту за формулою Р. Хартлі рівна N = 2i= 24= 16.
Приклад 2. Скільки секунд буде потрібно модему, що передає повідомлення із швидкістю 28 800 біт/с для передачі 100 сторінок тексту в 30 рядків по 60 символів кожна в розширеному кодуванні ASCII.
Розв'язання. У розширеному кодуванні ASCII кожен символ займає 8 біт або 1 байт.
Тоді обсяг тексту дорівнює 100 · 30 · 60 · 8 = 1 440 000 біт.