raatools/

Конвертер систем числення

Конвертуйте між двійковою, десятковою, вісімковою та шістнадцятковою.

Що таке перетворення систем числення?

Перетворення систем числення — це процес подання одного й того самого числового значення в іншій позиційній системі числення. Кожна система числення використовує фіксований набір цифр: двійкова — 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-бітні байти, які рівномірно діляться на дві шістнадцяткові цифри, але нерівномірно — на вісімкові.