Двоичные числа и перевод систем счисления: полное руководство (двоичная, десятичная, шестнадцатеричная, восьмеричная)
Двоичный код — основа всего, что делает компьютер. Это руководство охватывает все четыре системы счисления, показывает как переводить числа вручную, объясняет почему шестнадцатеричная система повсюду в программировании и разбирает перевод двоичного кода в текст (ASCII).
Что такое двоичная система?
Двоичная система — это система счисления с основанием 2, которая использует ровно две цифры: 0 и 1. Каждый фрагмент данных внутри компьютера — символ, изображение, сетевой пакет — хранится и обрабатывается как последовательность этих двух значений.
Причина использования двоичной системы физическая: транзисторы внутри процессора имеют два устойчивых состояния — включено и выключено. Обозначение этих состояний как 1 и 0 является наиболее надёжным способом хранения информации без накопления ошибок при миллиардах операций в секунду.
Один двоичный разряд называется битом. Восемь бит образуют байт. Байт может хранить 256 различных значений (28 = 256), чего достаточно для кодирования любого символа стандартной латиницы.
Четыре системы счисления
Программисты регулярно работают с четырьмя системами. Каждая из них — это сокращённая запись одних и тех же двоичных данных:
| Название | Основание | Цифры | Типичное применение |
|---|---|---|---|
| Двоичная | 2 | 0, 1 | Регистры CPU, битовые флаги, сеть |
| Восьмеричная | 8 | 0–7 | Права доступа Unix (chmod 755) |
| Десятичная | 10 | 0–9 | Числа, понятные человеку |
| Шестнадцатеричная | 16 | 0–9, A–F | Цвета (#FF5500), адреса памяти, хеши |
Для быстрого перевода между системами используйте наш конвертер систем счисления.
Перевод двоичного числа в десятичное
Каждая позиция в двоичном числе представляет степень 2, начиная с 20 = 1 справа. При каждом шаге влево значение удваивается.
1×27 + 0×26 + 1×25 + 1×24 + 0×23 + 1×22 + 0×21 + 1×20= 128 + 0 + 32 + 16 + 0 + 4 + 0 + 1
= 181
Быстрый способ: выпишите позиционные значения (128, 64, 32, 16, 8, 4, 2, 1) над каждым битом, затем сложите только те позиции, где бит равен 1.
Позиции с 1: 32, 8, 2 → 32 + 8 + 2 = 42
Перевод десятичного числа в двоичное
Стандартный метод — последовательное деление на 2. Делите число, записывайте остаток, затем делите частное снова. Читайте остатки снизу вверх.
45 ÷ 2 = 22 остаток 1
22 ÷ 2 = 11 остаток 0
11 ÷ 2 = 5 остаток 1
5 ÷ 2 = 2 остаток 1
2 ÷ 2 = 1 остаток 0
1 ÷ 2 = 0 остаток 1
Читаем снизу вверх: 101101
Проверка: 32 + 8 + 4 + 1 = 45. Верно.
Шестнадцатеричная система
Шестнадцатеричная система — это основание 16. Поскольку 16 = 24, каждая шестнадцатеричная цифра соответствует ровно четырём двоичным битам (полубайту). Это делает hex компактным способом записи двоичных данных без потери точности.
Цифры от 10 до 15 записываются буквами от A до F:
| Десятичное | Двоичное | Hex |
|---|---|---|
| 10 | 1010 | A |
| 11 | 1011 | B |
| 12 | 1100 | C |
| 13 | 1101 | D |
| 14 | 1110 | E |
| 15 | 1111 | F |
Чтобы перевести hex в двоичное, замените каждую hex-цифру её 4-битным эквивалентом:
3 = 0011, F = 1111 → 00111111
Почему разработчики используют hex? Потому что полный байт (8 бит) умещается ровно в два hex-символа. Хеш SHA-256, который занял бы 256 символов в двоичной записи, в hex занимает всего 64. Адреса памяти, цветовые коды и контрольные суммы — всё это выигрывает от такого сжатия.
Двоичный код в текст: кодировка ASCII
ASCII (Американский стандартный код для обмена информацией) присваивает число от 0 до 127 каждому символу латинского алфавита, цифрам, знакам препинания и управляющим кодам. Поскольку эти числа умещаются в 7 битах, стандартные ASCII-символы хранятся по одному байту каждый.
Когда вы видите блок двоичных данных и хотите узнать, что там написано, процесс следующий:
- Разбейте двоичную строку на группы по 8 бит
- Переведите каждую группу из двоичной в десятичную
- Найдите это десятичное значение в таблице ASCII
01001000 = 72 = H
01101001 = 105 = i
Результат: "Hi"
Современный текст использует UTF-8, расширяющий ASCII. Для символов вне базового диапазона ASCII (буквы с диакритикой, иероглифы, эмодзи) UTF-8 использует от 2 до 4 байт на символ. Двоичное представление становится длиннее, но логика декодирования та же: переводим байты в кодовые точки, затем ищем символ Unicode.
Таблица сравнения: числа от 0 до 15 во всех четырёх системах
| Десятичное | Двоичное | Восьмеричное | Шестнадцатеричное |
|---|---|---|---|
| 0 | 0000 | 0 | 0 |
| 1 | 0001 | 1 | 1 |
| 2 | 0010 | 2 | 2 |
| 3 | 0011 | 3 | 3 |
| 4 | 0100 | 4 | 4 |
| 5 | 0101 | 5 | 5 |
| 6 | 0110 | 6 | 6 |
| 7 | 0111 | 7 | 7 |
| 8 | 1000 | 10 | 8 |
| 9 | 1001 | 11 | 9 |
| 10 | 1010 | 12 | A |
| 11 | 1011 | 13 | B |
| 12 | 1100 | 14 | C |
| 13 | 1101 | 15 | D |
| 14 | 1110 | 16 | E |
| 15 | 1111 | 17 | F |
Где встречаются эти системы на практике
IP-адреса
IPv4-адрес, например 192.168.1.1, состоит из четырёх десятичных чисел, разделённых точками. Каждое число — это один байт (0–255), хранящийся внутри как 8 бит. Адрес 192.168.1.1 в двоичном виде:
11000000.10101000.00000001.00000001
Цвета HTML
Цвет #FF5500 — это три hex-пары: FF (красный = 255), 55 (зелёный = 85), 00 (синий = 0). В двоичном виде это 11111111 01010101 00000000 — три байта, 24 бита. Именно поэтому веб-цвета называют 24-битными.
Права доступа Unix
Когда вы выполняете chmod 755, число 755 — восьмеричное. Каждая цифра — 3 бита: 7 = 111 (чтение + запись + выполнение), 5 = 101 (чтение + выполнение):
111 101 101 = владелец: rwx, группа: r-x, остальные: r-x
Символы Unicode
Эмодзи 😀 — кодовая точка Unicode U+1F600. В hex это 1F600; в десятичном — 128512. UTF-8 кодирует его четырьмя байтами: F0 9F 98 80 в hex, или 11110000 10011111 10011000 10000000 в двоичном.
Переведите двоичный код в текст мгновенно
Вставьте двоичный код и декодируйте его в читаемый текст одним кликом. Поддерживает ASCII, UTF-8 и форматы hex.