Двійкова, десяткова й шістнадцяткова системи: як переходити від однієї до іншої

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

Оновлено:

Що таке позиційна система

У десятковому числі 4 095 цифра 4 означає не 4, а 4 000, бо стоїть на місці тисяч. Кожна позиція множить цифру на степінь десятки (1, 10, 100, 1 000…). Це і є позиційна система, а основа — це кількість різних цифр, які в ній використовують: у десятковій їх десять.

Двійкова система працює так само, але з основою 2: існують лише 0 і 1, і кожне місце важить удвічі більше за попереднє. Шістнадцяткова використовує основу 16: шістнадцять цифр — це від 0 до 9 та літери від A до F, і кожне місце важить у 16 разів більше за попереднє. Комп'ютери працюють у двійковій системі, бо схемі достатньо розрізняти лише два стани (вимкнено й увімкнено), а шістнадцяткова — це короткий спосіб записати ці біти.

Скільки важить кожне місце. Якщо вивчити напам'ять степені двійки до 128, ви заощадите майже всі обчислення.
Позиція (справа наліво)Значення в двійковійЗначення в шістнадцятковій
1-ша11
2-га216
3-тя4256
4-та84 096
5-та1665 536
6-та321 048 576
7-ма6416 777 216
8-ма128268 435 456

Від двійкової до десяткової вручну

Кожну цифру записують разом зі значенням її місця й додають лише ті місця, де стоїть 1. Приклад із 1101: справа наліво місця важать 1, 2, 4 і 8.

  1. Запишіть число, а під ним значення кожної позиції: 1 1 0 1 над 8 4 2 1.
  2. Подивіться, що стоїть на кожному місці: 1 на місці 8, 1 на місці 4, 0 на місці 2 і 1 на місці 1.
  3. Пропустіть місця з нулем (тут це місце 2).
  4. Додайте: 8 + 4 + 0 + 1 = 13. Отже, 1101 у двійковій системі — це 13 у десятковій.

З більшою кількістю цифр усе так само: 11111111 — це 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255, найбільше значення, що вміщується у 8 бітів. А 10110110 — це 128 + 32 + 16 + 4 + 2 = 182.

Від десяткової до двійкової послідовним діленням

Число ділять на 2 знову й знову, записуючи остачу від кожного ділення (завжди 0 або 1), доки частка не стане 0. Остачі, прочитані знизу вгору, і є двійковим числом. Приклад із 45:

Якщо прочитати остачі знизу вгору, вийде 101101. Для перевірки додайте: 32 + 8 + 4 + 1 = 45.

Є й альтернативний метод, який багатьом подобається більше: віднімати степені двійки від більшої до меншої. Для 200: 128 підходить (залишається 72), 64 підходить (залишається 8), 32 і 16 не підходять, а 8 підходить (залишається 0). Використані місця — 128, 64 і 8, тому 200 = 11001000.

Шістнадцяткова: шістнадцять цифр і таблиця під рукою

Оскільки цифр для 10–15 не існує, використовують літери A, B, C, D, E і F. Одна шістнадцяткова цифра дорівнює рівно чотирьом бітам («нібл»), і саме тому вона така зручна: байт із 8 бітів записують лише двома шістнадцятковими цифрами.

Щоб перейти від шістнадцяткової до десяткової, помножте кожну цифру на степінь 16 її місця й додайте. Наприклад, 3F = 3 × 16 + 15 = 63, а A3 = 10 × 16 + 3 = 163.

Від 0 до 15 у чотирьох системах, які показує інструмент.
ДесятковаДвійкова (4 біти)ВісімковаШістнадцяткова
0000000
1000111
2001022
3001133
4010044
5010155
6011066
7011177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F

Навіщо потрібна шістнадцяткова: байти, кольори й адреси

Байт — це 8 бітів, він має значення від 0 до 255 (від 00000000 до 11111111). Записувати біти вручну повільно й легко помилитися; у шістнадцятковій той самий байт — це два символи, від 00 до FF. Щоб перейти від двійкової до шістнадцяткової, розбийте біти на групи по чотири справа й замініть кожну групу цифрою з таблиці. Приклад: 11010111 розбивається на 1101 і 0111, тобто D і 7, отже значення — D7. У десятковій це 13 × 16 + 7 = 215.

Найвідоміший випадок — веб-кольори. У #FF8800 є три байти: FF для червоного (255), 88 для зеленого (136) і 00 для синього (0). Це насичений помаранчевий: увесь червоний, трохи більше половини зеленого й жодного синього. Шістнадцяткову систему також використовують в адресах пам'яті, кодах помилок та мережевих ідентифікаторах.

Від тексту до двійкового коду через ASCII

Комп'ютер зберігає кожну літеру як число, а це число — як біти. У таблиці ASCII літера A — це 65, що у двійковій системі з 8 бітів дорівнює 01000001. Слово «Hi» — це дві літери: H має код 72 (01001000), а i — 105 (01101001), тож записується як 01001000 01101001. Слово «Hola» — це 72, 111, 108 і 97, тобто 01001000 01101111 01101100 01100001, або в шістнадцятковій 48 6F 6C 61.

Інструмент використовує кодування UTF-8: для основних англійських літер кожен символ займає один байт із 8 бітів, але українська літера, символ із діакритикою чи емодзі займають кілька байтів, тож дають понад 8 бітів. Наприклад, літера ñ — це два байти: 11000011 10110001 (C3 B1 у шістнадцятковій).

Як зробити все це за допомогою інструмента

Конвертер «Двійкове, десяткове та hex» допоможе перевірити ваші ручні обчислення або розв'язати довгі числа без помилок.

  1. Введіть число в поле його системи: «Десяткова (основа 10)», «Двійкова (основа 2)», вісімкова або «Шістнадцяткова (основа 16)». Решта трьох заповняться самі.
  2. Якщо цифра не підходить для системи (наприклад, 2 у двійковій), інструмент повідомить про це.
  3. Для тексту введіть його в поле «Текст» і подивіться «Двійковий код (8 біт на символ)» та шістнадцятковий код за байтами. Також можна вставити біти групами по 8, щоб повернутися до тексту.
  4. Для незвичних систем скористайтеся «Будь-яка система числення (від 2 до 36)»: ви вибираєте початкову основу, кінцеву й вводите число.

Обмеження: інструмент перетворює лише невід'ємні цілі числа (без десяткових знаків і знака) і не додає нулі зліва за вас, тож якщо потрібні рівно 8 бітів, доповніть вручну (13 — це 00001101). Нічого з того, що ви вводите, не залишає вашого браузера.

Типові помилки

Розв'язані вправи для практики

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

Поширені запитання

Як перевести 1101 із двійкової в десяткову?

Додайте значення місць, де стоїть 1: 8 + 4 + 1 = 13. Друга цифра справа — це 0, тому 2 не додається.

Скільки буде 255 у двійковій і шістнадцятковій?

255 — це 11111111 у двійковій і FF у шістнадцятковій. Це найбільше значення, що вміщується в байт із 8 бітів.

Чому в шістнадцятковій системі використовують літери?

Тому що потрібно шістнадцять різних символів, а десяткова система дає лише десять (від 0 до 9). Тому A дорівнює 10, B — 11, C — 12, D — 13, E — 14, а F — 15.

Скільки різних чисел можна записати за допомогою 8 бітів?

256, від 0 до 255. Загалом за допомогою n бітів можна подати 2 в степені n значень.

Чи перетворює інструмент від'ємні числа або числа з десятковими знаками?

Ні, лише невід'ємні цілі. Для тексту він використовує UTF-8, тому літери з діакритикою й емодзі дають понад 8 бітів.