Конвертер двійкових чисел у десяткові
Конвертуйте двійкові числа у десяткові та десяткові у двійкові миттєво. Підтримує до 64-бітних чисел. Безкоштовний конвертер з миттєвими точними результатами.
Як працює конвертація з бінарної у десятичну
Бінарна (основана на 2) використовує лише цифри 0 і 1. Кожна позиція представляє потужність 2, збільшуючись зліва направо. Для конвертації бінарної у десятичну множіть кожну бінарну цифру на її місце значення та підсумовуйте результати.
Наприклад: конвертувати 1011₂ у десятичну
- Позиція 3 (ліворуч): 1 × 2³ = 1 × 8 = 8
- Позиція 2: 0 × 2² = 0 × 4 = 0
- Позиція 1: 1 × 2¹ = 1 × 2 = 2
- Позиція 0 (праворуч): 1 × 2⁰ = 1 × 1 = 1
- Всього: 8 + 0 + 2 + 1 = 11
Для десятичної у бінарну знову й знову ділим на 2 та записуйте залишки знизу вгору. 11 ÷ 2 = 5 R1, 5 ÷ 2 = 2 R1, 2 ÷ 2 = 1 R0, 1 ÷ 2 = 0 R1 → читати залишки вгору: 1011.
Ця позиційна системи працює так само, як і десятична — тільки з іншою основою. У десятичній (основі 10) число 347 означає 3 × 10² + 4 × 10¹ + 7 × 10⁰ = 300 + 40 + 7. Бінарна використовує той же принцип, тільки з потужностями 2 замість потужностей 10.
Справочник бінарних місць
Байт із 8 бітом є основною одиницею зберігання комп'ютера. Тут є повний таблиця місць значення для 8-бітових чисел (0–255):
| Позиція біта | Потужність 2 | Десятична вартість |
|---|---|---|
| Біт 7 (MSB) | 2⁷ | 128 |
| Біт 6 | 2⁶ | 64 |
| Біт 5 | 2⁵ | 32 |
| Біт 4 | 2⁴ | 16 |
| Біт 3 | 2³ | 8 |
| Біт 2 | 2² | 4 |
| Біт 1 | 2¹ | 2 |
| Біт 0 (LSB) | 2⁰ | 1 |
Байт може представляти будь-яке значення від 0 (00000000₂) до 255 (11111111₂). Два байти (16 бітів) займають 0–65 535. Чотири байти (32 біта) займають 0–4 294 967 295.
Розширений таблиця потужностей 2
Для програмістів та спеціалістів з комп'ютерних наук знання потужностей 2 до 2⁶⁴ необхідне для розуміння адресування пам'яті, типів даних та обмежень системи:
| Потужність | Десятична вартість | Значення |
|---|---|---|
| 2⁰ | 1 | Найменша одиниця (1 біта) |
| 2⁸ | 256 | Діапазон 1 байта (0–255) |
| 2¹⁰ | 1 024 | 1 Кібібайт (кібібайт) |
| 2¹⁶ | 65 536 | 16-бітний діапазон; обмеження TCP-порта |
| 2²⁰ | 1 048 576 | 1 Мібібайт (мебібайт) |
| 2²⁴ | 16 777 216 | 24-бітовий колір (16,7 мільйонів кольорів) |
| 2³⁰ | 1 073 741 824 | 1 Гібібайт (гібібайт) |
| 2³² | 4 294 967 296 | 32-бітний простір адресів; максимальна адреса IPv4 |
| 2⁴⁰ | 1 099 511 627 776 | 1 Тібібайт (тібібайт) |
| 2⁶⁴ | 18 446 744 073 709 551 616 | 64-бітний простір адресів; сучасні процесори |
Зверніть увагу на різницю між бінарними префіксами (Кібібайт, Мібібайт, Гібібайт — потужності 2) та префіксами SI (КБ, МБ, ГБ — потужності 10). 1 ГБ = 1 000 000 000 байт; 1 Гібібайт = 1 073 741 824 байти. Ця ~7% різниця пояснює чому 500 ГБ жорсткого диска виглядає як ~465 Гібібайт у своєму ОС (яке зазвичай використовує бінарні одиниці внутрішньо).
Звичайні бінарні значення у комп'ютерній техніці
Ці бінарні значення часто зустрічаються у програмуванні, мережевій роботі та системній адміністрації:
| Бінарний | Десятична | Гексадециальний | Октал | Контекст |
|---|---|---|---|---|
| 00000000 | 0 | 0x00 | 0o0 | Нульовий байт, чорний канал кольору |
| 00001010 | 10 | 0x0A | 0o12 | Символ перенесення рядка (LF) — Unix newline |
| 00001101 | 13 | 0x0D | 0o17 | Символ повернення каретки (CR) — частина newline Windows |
| 00100000 | 32 | 0x20 | 0o40 | Символ пробілу (ASCII) |
| 01000001 | 65 | 0x41 | 0o101 | ASCII 'A' |
| 01100001 | 97 | 0x61 | 0o141 | ASCII 'a' (різниця від 'A' у біті 5) |
| 01111111 | 127 | 0x7F | 0o177 | Локальний IP (останній октет); символ DEL |
| 10000000 | 128 | 0x80 | 0o200 | Початок розширеної ASCII / біта знака |
| 11000000 | 192 | 0xC0 | 0o300 | Префікс мережі класу C (192.x.x.x) |
| 11111111 | 255 | 0xFF | 0o377 | Радіоізотоп; максимальний байт; білий у RGB |
Бінарний, гексадециальний та октальний порівняння
Програмісти використовують різні системи чисел залежно від контексту. Тут показано, як одне й те саме значення виглядає у кожній системі:
| Десятична | Бінарний | Гексадециальний | Октал | Контекст |
|---|---|---|---|---|
| 0 | 0000 | 0x0 | 0o0 | Нульовий; нульовий |
| 7 | 0111 | 0x7 | 0o7 | Unix-пермісси (rwx) |
| 10 | 1010 | 0xA | 0o12 | — |
| 15 | 1111 | 0xF | 0o17 | Максимальний 4-бітовий (ніббл) |
| 16 | 10000 | 0x10 | 0o20 | — |
| 127 | 01111111 | 0x7F | 0o177 | Максимальний підписаний 8-бітовий |
| 255 | 11111111 | 0xFF | 0o377 | Максимальний безпідписаний 8-бітовий |
| 511 | 111111111 | 0x1FF | 0o777 | Unix-пермісси rwxrwxrwx |
| 1023 | 1111111111 | 0x3FF | 0o1777 | Максимальний 10-бітовий (ADC) |
Гексадециальний є найбільш поширеною скороченою формою бінарного, оскільки кожен гексадециальний цифра відповідає точно 4 бінім цифрам — роблячи конвертацію дуже простою. Октальний відповідає 3 бінім цифрам на цифру і використовується головним чином для Unix-перміссій (наприклад, chmod 755 = 111 101 101 у бінім = rwxr-xr-x).
Підписані бінарні числа (Дві комплементи)
Комп'ютери представляють негативні числа за допомогою двох комплементів — стандарту, визначеного IEEE і використовуваного майже всіма сучасними процесорами. У восьмибітній системі двійкових комплементів:
| Бінарний | Непідписаний десятичний | Підписаний (Дві комплементи) |
|---|---|---|
| 00000000 | 0 | 0 |
| 00000001 | 1 | +1 |
| 01111111 | 127 | +127 (максимально позитивний) |
| 10000000 | 128 | −128 (мінімально негативний) |
| 10000001 | 129 | −127 |
| 11111110 | 254 | −2 |
| 11111111 | 255 | −1 |
Для від'ємування числа за допомогою двійкових комплементів: інвертуйте всі біти і додайте 1. Наприклад, +5 = 00000101 → інвертувати → 11111010 → додати 1 → 11111011 = −5.
Діапазони для звичайних цілочисельних типів:
| Тип | Біти | Непідписаний діапазон | Підписаний діапазон |
|---|---|---|---|
| байт / uint8 | 8 | 0 до 255 | −128 до +127 |
| коротке ціле / int16 | 16 | 0 до 65 535 | −32 768 до +32 767 |
| ціле / int32 | 32 | 0 до 4 294 967 295 | −2 147 483 648 до +2 147 483 647 |
| довге ціле / int64 | 64 | 0 до 18,4 × 10¹⁸ | −9,2 × 10¹⁸ до +9,2 × 10¹⁸ |
Бінарні дані в сучасній технології
Бінарні дані є основою всіх сучасних обчислень, оскільки транзистори мають дві стабільні станів (ввімкнено/вимкнено, 1/0). Ключові застосування:
- Розміри файлів: 1 кілобайт = 2¹⁰ = 1024 байти; 1 мегабайт = 2²⁰ = 1 048 576 байтів; 1 гігабайт = 2³⁰ байтів
- Кольори: RGB-кольори складаються з трьох вісімнадцятибітових значень. #FF5733 у шістнадцятковій системі = (255, 87, 51) у десятковій системі = (11111111, 01010111, 00110011) у бінарній системі
- ASCII-кодування: Літера 'A' = 65 = бінарний 01000001; 'a' = 97 = бінарний 01100001
- Юнікод: Більшість текстових символів вміщуються в 16-бітові бінарні дані (діапазон 0–65 535)
- Адреси IP: Адреси IPv4 складаються з чотирьох вісімнадцятибітових груп: 192.168.1.1 = 11000000.10101000.00000001.00000001
Зрозуміння бінарних даних допомагає в програмуванні (бітові операції, флаги), мережевій роботі (підрахунок IP/підсітки) і роботі з низькорівневим обладнанням.
Бінарна арифметика: додавання і віднімання
Бінарна арифметика дотримується тих же правил, що і десяткова, але тільки з двома цифрами. Таблиця додавання виглядає так:
| A | B | Сума | Перенесення |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 |
| 1 | 0 | 1 | 0 |
| 1 | 1 | 0 | 1 |
Наприклад: 1011 + 0110
Робота зліва направо: 1+0=1, 1+1=10 (записати 0 перенесення 1), 0+1+1=10 (записати 0 перенесення 1), 1+0+1=10 (записати 0 перенесення 1). Результат: 10001 (десятковий: 11+6=17 ✓)
Віднімання в апаратному забезпеченні виконується шляхом додавання двійкового комплемента віднімання. Для розрахунку A−B процесор виконує A + (−B), де −B — двійковий комплемент віднімання B. Це дозволяє використовувати єдиний блок додавання для обробки як додавання, так і віднімання.
Бітові операції
Мови програмування забезпечують бітові операції, які змінюють окремі біти. Вони є фундаментальними для низькорівневого програмування, інтегрованих систем і оптимізації виконання:
| Операція | Символ | Приклад (8-бітовий) | Результат | Застосування |
|---|---|---|---|---|
| І | & | 10110101 & 11110000 | 10110000 | Фільтрування біта, виділення полів |
| ЛЮКС | | | 10110101 | 00001111 | 10111111 | Встановлення біта, поєднання флагів |
| ХОР | ^ | 10110101 ^ 11111111 | 01001010 | Переключення біта, проста шифрування |
| НІ | ~ | ~10110101 | 01001010 | Інверсія біта |
| Сдвиг вліво | << | 00000101 << 2 | 00010100 | Умноження на 2ⁿ |
| Сдвиг вправо | >> | 00010100 >> 2 | 00000101 | Ділення на 2ⁿ |
Сдвиг біта значно швидше, ніж множення/ділення в багатьох процесорах. x << 1 еквівалентно x × 2, а x >> 1 еквівалентно x ÷ 2 (ціле ділення). Ігрові двигуни і інтегровані системи використовують ці операції для підвищення продуктивності.
Бінарно-десяткова система (БДС)
Бінарно-десяткова система представляє кожний десятковий цифру за допомогою власного 4-бітового бінарного шаблону. Відмінність від чистої бінарної системи полягає в збереженні десяткової структури:
| Десятковий | Чистий бінарний | БДС |
|---|---|---|
| 0 | 0000 | 0000 |
| 5 | 0101 | 0101 |
| 9 | 1001 | 1001 |
| 10 | 1010 | 0001 0000 |
| 42 | 101010 | 0100 0010 |
| 99 | 1100011 | 1001 1001 |
| 255 | 11111111 | 0010 0101 0101 |
БДС менше ефективний за розміром порівняно з чистою бінарною системою (10 із 16 можливих 4-бітових комбінацій використовуються), але він спрощує десяткове відображення — кожна нібелька відображається прямо в десятковий цифру. БДС використовується в цифрових годинниках, калькуляторах, фінансових системах (де саме десяткове представлення має значення), а також в старих основних базах даних (COBOL, IBM EBCDIC).
{ “@context”: “https://schema.org”, “@type”: “Article”, “headline”: “Бінарні дані”, “image”: “https://example.com/image.jpg", “description”: “Опис бінарних даних”, “author”: { “@type”: “Person”, “name”: “Автор статті” }, “publisher”: { “@type”: “Organization”, “name”: “Назва видання”, “logo”: { “@type”: “ImageObject”, “url”: “https://example.com/logo.jpg" } }, “datePublished”: “2022-01-01”, “dateModified”: “2022-01-01” }
Фloating-Point Binary (IEEE 754)
Десяткові числа з дробовими частинами (як 3,14) зберігаються у бінарному вигляді за допомогою стандарту IEEE 754. 32-бітовий (однаковісний) float складається з трьох частин:
| Поле | Біти | Навмисність |
|---|---|---|
| Знак | 1 | 0 = додатній, 1 = від'ємний |
| Ексponent | 8 | Зв'язаний експонент (зсув = 127) |
| Мантиса (знаменник) | 23 | Дробова частина (прихований лідінг 1) |
Наприклад: Десяткове число −6,5 у IEEE 754 однаковісному:
- Знак = 1 (від'ємний)
- 6,5 у бінарному вигляді = 110,1₂ = 1,101 × 2² (нормалізований)
- Ексponent = 2 + 127 (зсув) = 129 = 10000001₂
- Мантиса = 10100000000000000000000 (23 біта, прихований лідінг 1 відсутній)
- Повна представлення: 1 10000001 10100000000000000000000
Це чому 0,1 + 0,2 ≠ 0,3 у більшості мов програмування — десятична дробова частина 0,1 має нескінченну повторювану представлення у бінарному вигляді (як 1/3 у десятковому вигляді = 0,333…), тому вона повинна бути округлена, що призводить до дуже малих помилок. Для фінансових розрахунків використовуйте бібліотеки арифметики з десятичними дробями (модуль decimal Python, BigDecimal Java).
Кодування символів: Від ASCII до UTF-8
Текст зберігається як бінарні числа, які відображають символи. Розвиток кодування символів відбувався відповідно до світової експансії комп'ютерів:
| Кодування | Рік | Біти на символ | Підтримувані символи | Примітки |
|---|---|---|---|---|
| ASCII | 1963 | 7 (зберігається в 8) | 128 | Латинські літери, цифри, знаки пунктуації |
| Розширений ASCII (ISO 8859-1) | 1987 | 8 | 256 | Західні європейські символи (é, ñ, ü) |
| UTF-8 | 1993 | 8–32 (змінна) | 1 112 064 | Надає сумісність з ASCII; стандарт вебу |
| UTF-16 | 1996 | 16–32 (змінна) | 1 112 064 | Використовується в Java, Windows, JavaScript внутрішньо |
| UTF-32 | 2000 | 32 (фіксована) | 1 112 064 | Фіксована ширина; витрачає місце для латинського тексту |
UTF-8 кодує ASCII-символи в одному байті (ідентичний звичайному ASCII), європейські символи в 2 байти, китайські символи в 3 байти, емоджі в 4 байти. Більше 98% усіх веб-сторінок використовують кодування UTF-8 (за W3Techs, 2024).
Бінарні логічні ґейти
Логічні ґейти є фізичними будівельними блоками всіх цифрових схем. Кожен ґейт виконує просту бінарну операцію над однією або двома вхідними бітом:
| Гейт | Символ | Таблиця істинності (A,B → Вихід) | Опис |
|---|---|---|---|
| І | A·B | 0,0→0; 0,1→0; 1,0→0; 1,1→1 | Вихід є 1 лише тоді, коли обидва вхідні біта є 1 |
| ЛЮБИЙ | A+B | 0,0→0; 0,1→1; 1,0→1; 1,1→1 | Вихід є 1 тоді, коли хоча б один вхідний біта є 1 |
| НІ | ¬A | 0→1; 1→0 | Інвертує вхідний біта |
| НІАНД | ¬(A·B) | 0,0→1; 0,1→1; 1,0→1; 1,1→0 | І після НІ — універсальний ґейт |
| ХОР | A⊕B | 0,0→0; 0,1→1; 1,0→1; 1,1→0 | Вихід є 1 тоді, коли вхідні біта відрізняються |
Гейт НІАНД називається універсальним ґейтом, оскільки будь-яка інша логічна функція може бути побудована виключно з ґейтів НІАНД. Сучасні ЦПУ містять мільярди транзисторів, організованих у ґейти НІАНД і НОР, які потім поєднуються в додавачі, мультиплексори, фліп-флопи та всі інші будівельні блоки процесора. Чип Apple M3 містить близько 25 мільярдів транзисторів — кожен з яких є мікроскопічним бінарним ключем, який може бути або включеним (1) або вимкненим (0).
Гейт ХОР має особливу властивість: він видає 1 тоді, коли два вхідних біта відрізняються. Це робить його основою для бінарної арифметики (сумарний біта півдодаткового підсумовувача), перевірки помилок (парності) та простої шифрування (шифр ХОР).
Історія бінарної системи: від Лейбніца до сучасної комп'ютерної техніки
Бінарна система числення має багату інтелектуальну історію:
| Рік | Персона/Подія | Внесок |
|---|---|---|
| ~300 до н. е. | Пінґала (індійський математик) | Використовував бінарний подібний спосіб класифікації віршів |
| 1679 | Готфрід Лейбніц | Формально описав сучасну бінарну арифметику; побачив зв'язки між китайським І Чінґ |
| 1847 | Джордж Буль | Випустив "Математичний аналіз логіки" — фундаментальний матеріал Бульової алгебри |
| 1937 | Клод Шеннон (дипломна робота в МІТ) | Показав, що булева алгебра може моделювати електричні схеми переключень |
| 1945 | Джон фон Нейман | Запропонував збережену програмну бінарну архітектуру комп'ютера (архітектура фон Неймана) |
| 1971 | Intel 4004 | Перший комерційний мікропроцесор — 2 300 транзисторів, 4-бітова бінарна |
| 2024 | Сучасні ЦП | Білліони транзисторів; 64-бітна бінарна архітектура стандарт |
Інсайт Лейбніца, що всі числа можуть бути виражені виключно за допомогою 0 і 1, був чисто математичний — він ніколи не уявляв електронні комп'ютери. Робота Шеннона 1937 року з'єднала булеву (бінарну) логіку з електричними реле, створюючи теоретичну основу для всіх цифрових електронних схем. Її називають "можливо найважливішою дипломною роботою XX століття".
Бінарна система в мережах: адреси IP і маски підмережі
Знання бінарної системи необхідне для мережної адміністрації. Адреси IPv4 і маски підмережі — 32-бітові бінарні числа:
| Опис | Розгорнута десятична | Бінарний |
|---|---|---|
| Адреса IP | 192.168.1.100 | 11000000.10101000.00000001.01100100 |
| Маска підмережі (/24) | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
| Адреса мережі | 192.168.1.0 | 11000000.10101000.00000001.00000000 |
| Адреса розсилання | 192.168.1.255 | 11000000.10101000.00000001.11111111 |
Адреса мережі обчислюється шляхом виконанням операції "І" адреси IP і маски підмережі. Адреса розсилання встановлює всі біти вузла на 1. Кількість використовуваних адрес вузлів = 2^(32−префікс) − 2. Для мережі /24: 2⁸ − 2 = 254 використовувані вузли.
Навичкові розміри підмереж:
| CIDR | Маска підмережі | Вузли | Звичайне використання |
|---|---|---|---|
| /32 | 255.255.255.255 | 1 | Один вузловий маршрут |
| /30 | 255.255.255.252 | 2 | Пунктирна зв'язок |
| /24 | 255.255.255.0 | 254 | Стандартна локальна мережа |
| /16 | 255.255.0.0 | 65 534 | Велика мережа кампусу |
| /8 | 255.0.0.0 | 16 777 214 | Клас А розподіл |
Часті запитання
Як перекласти бінарне 1100 у десяткове?
1100 у бінарному: 1×8 + 1×4 + 0×2 + 0×1 = 8 + 4 = 12. Отже бінарне 1100 = десяткове 12.
Що таке 255 у бінарному?
255 у бінарному — 11111111 — усі вісім біта встановлені на 1. Це максимальне значення однієї байта і з'являється в мережній техніці (маска підмережі 255.255.255.0) і кольорах (повний червоний = 255, 0, 0).
Як перекласти десяткове 100 у бінарне?
Повторювані розділи на 2: 100÷2=50 Р0, 50÷2=25 Р0, 25÷2=12 Р1, 12÷2=6 Р0, 6÷2=3 Р0, 3÷2=1 Р1, 1÷2=0 Р1. Читання залишків вгору: 1100100₂. Перевірка: 64+32+4 = 100. ✓
Що відрізняє бінарне від шістнадцяткового?
Бінарне використовує базу 2 (цифри 0–1); шістнадцяткове використовує базу 16 (цифри 0–9, A–F). Шістнадцяткове — компактна скорочена форма бінарного — кожна шістнадцяткова цифра відповідає точно 4 бінарним бітам. Наприклад, шістнадцяткове FF = бінарне 11111111 = десяткове 255.
Чому комп'ютери використовують бінарне замість десяткової системи?
Електронні схеми природно бінарні: транзистор є або включений (1), або вимкнений (0), а напруга є або високою, або низькою. Десяткова система вимагає 10 різних рівнів напруги, що складно виконувати у пристроях. Бінарна система є нетерпимою до шуму і ідеально підходить для логічних операцій true/false.
Що таке двійковий доповнення?
Двійкове доповнення — стандартний метод представлення підписаних (позитивних і негативних) цілих чисел у бінарному вигляді. Для знаходження двійкового доповнення (негативного) числа: інвертуйте всі біта і додайте 1. У вісімнадцятковій системі, +5 — 00000101, а -5 — 11111011. Ліва біта — біта підпису: 0 = позитивний, 1 = негативний. Цей метод дозволяє використовувати один і той же об'єднаний обчислювальний блок для виконання операцій додавання і віднімання.
Як перекласти бінарне у шістнадцяткове?
Груповіть бінарні цифри у групи по 4 зліва направо, потім перекладіть кожну групу. Приклад: 10110101₂ → 1011 0101 → B5₁₆. Груповані групи: 0000=0, 0001=1, 0010=2, ..., 1001=9, 1010=A, 1011=B, 1100=C, 1101=D, 1110=E, 1111=F.