Как работает перевод между системами счисления
Основание системы счисления — это количество цифр в ней. В десятичной их десять (0–9), в двоичной две (0 и 1), в восьмеричной восемь, в шестнадцатеричной шестнадцать (0–9, затем A–F). Значение записанного числа — это сумма каждой цифры, умноженной на основание в степени её позиции, считая с нуля справа.
Так, 1011 в двоичной системе — это 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11, а FF в шестнадцатеричной — 15×16¹ + 15×16⁰ = 240 + 15 = 255.
Перевод из десятичной системы в другую
- Разделите число на основание целевой системы и запишите остаток.
- Снова разделите частное и продолжайте, пока частное не станет равно 0.
- Прочитайте остатки от последнего к первому. Это и есть число в новой системе счисления.
Для 11 → двоичная: 11 ÷ 2 = 5 ост. 1, 5 ÷ 2 = 2 ост. 1, 2 ÷ 2 = 1 ост. 0, 1 ÷ 2 = 0 ост. 1. Читаем снизу вверх: 1011. Конвертер выше выводит эти шаги для любого введённого числа.
Hex и двоичная запись — одно и то же в разном виде
Поскольку 16 = 2⁴, каждая шестнадцатеричная цифра — это ровно четыре двоичных разряда (полубайт, nibble). Чтобы перевести одно в другое, замените каждую hex-цифру её 4-битным шаблоном и наоборот. 0xBEEF = 1011 1110 1110 1111. Восьмеричная система работает так же с группами по три бита. Именно поэтому программисты предпочитают hex: это компактный способ записывать битовые шаблоны.
| Hex | Двоичная | Dec | Hex | Двоичная | Dec |
|---|---|---|---|---|---|
| 0 | 0000 | 0 | 8 | 1000 | 8 |
| 1 | 0001 | 1 | 9 | 1001 | 9 |
| 2 | 0010 | 2 | A | 1010 | 10 |
| 3 | 0011 | 3 | B | 1011 | 11 |
| 4 | 0100 | 4 | C | 1100 | 12 |
| 5 | 0101 | 5 | D | 1101 | 13 |
| 6 | 0110 | 6 | E | 1110 | 14 |
| 7 | 0111 | 7 | F | 1111 | 15 |
Префиксы, которые встречаются в коде
Большинство языков обозначают систему счисления префиксом: 0x1F для hex, 0b11111 для двоичной, 0o37 (или ведущий 0 в C) для восьмеричной. Этот конвертер принимает все из них, а также игнорирует пробелы, подчёркивания и запятые, поэтому 1111_1111 и 1111 1111 работают одинаково.
Примеры
Вопросы
Как перевести двоичное число в десятичное вручную?
Подпишите под разрядами степени двойки справа налево (1, 2, 4, 8, 16 …) и сложите те степени, над которыми стоит 1. Для 1101 это 8 + 4 + 1 = 13.
Как перевести десятичное число в шестнадцатеричное?
Делите на 16 нацело и собирайте остатки; остатки от 10 до 15 записываются как A–F. 255 ÷ 16 = 15 ост. 15 → 15 ÷ 16 = 0 ост. 15, значит 255 = FF. Или сначала переведите в двоичную систему и читайте группами по четыре бита.
Почему программисты используют шестнадцатеричную систему?
Одна hex-цифра — это ровно четыре бита, поэтому байт всегда записывается двумя hex-цифрами. Адреса памяти, коды цветов, хеши и битовые флаги легче читать и набирать в hex, чем как длинные двоичные строки, а соответствие битам остаётся очевидным.
Конвертер справляется с большими числами?
Да. Он использует целые числа произвольной точности, поэтому значения длиннее 64 бит (например, 256-битные хеши, записанные в десятичном виде) переводятся точно, без округления.
Как обрабатываются отрицательные числа?
Ведущий знак минус сохраняется, а переводится модуль числа (−10 в двоичной системе становится −1010). Если вам нужен битовый шаблон, который сохранила бы CPU, то есть дополнительный код, используйте инструмент дополнительного кода, где можно выбрать разрядность.
Мой ввод отправляется на сервер?
Нет. Перевод выполняется в вашем браузере. У сайта нет бэкенда, который получал бы ваши числа.