Люди звикли до десяткової системи числення, бо в нас десять пальців, але комп'ютери "мислять" у двійковій системі, а програмісти часто працюють із шістнадцятковою й вісімковою — і кожна з них має практичну причину для існування.
Двійкова система і апаратний рівень
Транзистор має лише два стабільних стани — увімкнено й вимкнено, що природно відображається на двійкові цифри 0 і 1. Уся інформація в комп'ютері на найнижчому рівні представлена саме послідовностями бітів.
Шістнадцяткова система як зручне скорочення
Один шістнадцятковий розряд точно відповідає чотирьом бітам, тож два шістнадцяткові символи компактно представляють один байт (наприклад, #FF замість 11111111). Саме тому кольори в CSS, MAC-адреси й хеші записують у шістнадцятковому форматі — це компроміс між компактністю й простотою переведення в двійкову систему.
Де ще трапляється вісімкова система
Вісімкова система історично використовувалась через зручність переведення в двійкову (три біти на розряд), і досі трапляється, наприклад, у Unix-правах доступу до файлів (chmod 755), де кожна цифра компактно кодує три прапорці дозволів.
Навіщо це потрібно
- Перевести колір із шістнадцяткового формату CSS у десяткові значення RGB.
- Зрозуміти двійкове представлення числа при роботі з побітовими операціями.
- Розшифрувати вісімкові права доступу до файлів у Unix-системах.
Чому Base64 — це не система числення
Base64 часто плутають із конвертацією систем числення через схожу назву, але це принципово інша річ — кодування довільних бінарних даних (наприклад, зображення чи файлу) у текстовий рядок із 64 символів, а не спосіб запису одного числа. Число 255 у шістнадцятковій системі — це FF, а те саме число, закодоване в Base64 як один байт, виглядає зовсім інакше й має інше призначення — передачу бінарних даних текстовими каналами.