Конвертер систем числення
Конвертуйте між двійковою, десятковою, вісімковою та шістнадцятковою.
Що таке перетворення систем числення?
Перетворення систем числення — це процес подання одного й того самого числового значення в іншій позиційній системі числення. Кожна система числення використовує фіксований набір цифр: двійкова — 0 і 1, вісімкова — від 0 до 7, десяткова — від 0 до 9, а шістнадцяткова — від 0 до 9 та від A до F. Перетворення між цими системами є фундаментальною навичкою в інформатиці та цифровій електроніці.
Комп'ютери від природи працюють у двійковій системі, оскільки транзистори мають два стани: увімкнено і вимкнено. Проте читати довгі рядки нулів і одиниць незручно для людини. Шістнадцяткова система пропонує компактну альтернативу: кожна шістнадцяткова цифра відповідає рівно чотирьом двійковим бітам, тому байт 11111111 стає просто FF. Саме тому шістнадцятковий формат є кращим для адрес пам'яті, кольорових кодів і низькорівневого налагодження.
Як працює перетворення систем числення
Щоб перетворити з будь-якої системи в десяткову, помножте кожну цифру на її позиційну вагу та складіть результати. Наприклад, двійкове число 1011 дорівнює 1×8 + 0×4 + 1×2 + 1×1 = 11 у десятковій. Щоб перетворити з десяткової в іншу систему, ділиться на основу та читаємо залишки у зворотному порядку.
Перетворення між двійковою та шістнадцятковою системами ще простіше. Згрупуйте двійкові цифри по чотири (за потреби доповніть провідними нулями), а потім замініть кожну групу її шістнадцятковим еквівалентом. Наприклад, 0010 1010 стає 2A. Це пряме відображення пояснює, чому шістнадцяткова система така популярна в програмуванні: це скорочений запис двійкового коду.
Як користуватися цим інструментом
Введіть число в будь-яке з чотирьох полів введення — двійкове, вісімкове, десяткове або шістнадцяткове — і три інших поля оновляться миттєво. Інструмент перевіряє введені дані й відхиляє недійсні цифри для обраної системи. Також можна вставляти значення безпосередньо з редакторів коду або налагоджувачів.
Короткий довідник
- Двійкова (основа 2): цифри 0 і 1 — використовується у цифрових схемах і низькорівневому програмуванні.
- Вісімкова (основа 8): цифри 0–7 — досі застосовується у правах доступу Unix (755 = rwxr-xr-x).
- Десяткова (основа 10): цифри 0–9 — повсякденна система числення, якою користуються люди.
- Шістнадцяткова (основа 16): цифри 0–F — використовується для адрес пам'яті, кольорів CSS (#FF0000) та MAC-адрес.
Поширені помилки при перетворенні
Найпоширенішою помилкою є помилкове визначення системи числення вхідних даних. Число 100 означає сто у десятковій, але 4 у двійковій і 256 у шістнадцятковій. Завжди перевіряйте, в якій системі числення ви працюєте, перш ніж виконувати перетворення. Ще одна типова помилка — забувати, що літери A–F у шістнадцятковій системі не залежать від регістру: 0xff та 0xFF — це одне й те саме.
При ручному перетворенні люди нерідко перевертають порядок залишків або опускають провідні нулі. У програмуванні стежте за префіксами, що залежать від мови: 0b для двійкової, 0o для вісімкової та 0x для шістнадцяткової в більшості сучасних мов. Неправильний префікс дасть зовсім інше значення.
Практичне застосування
Веброзробники щодня використовують шістнадцяткові кольори — #FF5733 кодує канали червоного, зеленого та синього кольорів кожен як двозначне шістнадцяткове число (255, 87, 51). Мережеві інженери читають MAC-адреси у шістнадцяткових парах (AA:BB:CC:DD:EE:FF). Програмісти вбудованих систем перемикають окремі біти за допомогою двійкових масок. Знання перетворення систем числення робить всі ці завдання зрозумілими.
У кібербезпеці шістнадцяткові дампи необхідні для аналізу заголовків файлів, мережевих пакетів і шкідливого програмного забезпечення. Фахівці з криміналістики читають шістнадцяткові редактори, щоб знаходити приховані дані всередині файлів. Вільне орієнтування у перетворенні шістнадцяткової у двійкову значно прискорює цей аналіз.
Часті запитання
Чому комп'ютери використовують двійкову, а не десяткову систему?
Цифрові схеми будуються з транзисторів, що мають два надійних стани: увімкнено (1) і вимкнено (0). Двійкова система ідеально відповідає цій фізичній реальності. Розрізнення десяти рівнів напруги (для десяткової системи) було б набагато менш надійним і більш схильним до помилок.
У чому різниця між шістнадцятковою та вісімковою системами?
Шістнадцяткова система використовує 16 символів (0–F), і кожна цифра представляє 4 біти. Вісімкова використовує 8 символів (0–7), і кожна цифра представляє 3 біти. Шістнадцяткова поширеніша, оскільки сучасні комп'ютери використовують 8-бітні байти, які рівномірно діляться на дві шістнадцяткові цифри, але нерівномірно — на вісімкові.