Что делает этот конвертер
Инструмент переводит целое число между четырьмя наиболее распространёнными в программировании системами счисления: двоичной (основание 2), восьмеричной (основание 8), десятичной (основание 10) и шестнадцатеричной (основание 16). Введите любое значение, укажите, в какой системе оно записано, — и калькулятор сразу выдаст его представление во всех четырёх системах.
Как пользоваться
Введите число в поле значения, выберите исходную систему счисления из выпадающего списка и посмотрите результаты. Для шестнадцатеричной системы можно использовать цифры 0–9 и буквы A–F (регистр не важен), а необязательный префикс 0x или 0b убирается автоматически. Если цифра недопустима для выбранной системы, результат обнуляется.
Как работает формула
Чтобы перевести число в десятичную систему, каждую цифру умножают на основание, возведённое в степень, равную её позиции (отсчёт ведётся справа, начиная с 0), и суммируют произведения: $$\text{значение} = \sum_{i=0}^{k-1} d_i \cdot \text{основание}^{\,i}$$ Обратный перевод выполняется так: десятичное число последовательно делят на нужное основание, каждый остаток даёт цифру, а если прочитать остатки в обратном порядке (от последнего к первому), получится искомое число.
Разбор примера
Возьмём двоичное 1111. В десятичной системе это $$1\times2^3 + 1\times2^2 + 1\times2^1 + 1\times2^0 = 8 + 4 + 2 + 1 = 15$$ Переводим 15 в шестнадцатеричную систему: \(15 \div 16 = 0\), остаток 15, а 15 соответствует цифре F. В восьмеричной системе: \(15 \div 8 = 1\), остаток 7, то есть 17.
Частые вопросы
Поддерживаются ли буквы шестнадцатеричной системы? Да — буквы A–F (в верхнем или нижнем регистре) принимаются для основания 16.
Можно ли переводить отрицательные или дробные числа? Нет, конвертер работает только с неотрицательными целыми числами.
Почему в десятичном ответе появляются разделители тысяч? Они добавлены для удобства чтения. Двоичный, восьмеричный и шестнадцатеричный результаты показаны без разделителей, поскольку это позиционные коды.
Эквиваленты общих систем счисления
Четыре позиционные системы счисления, используемые в вычислениях, имеют одинаковые значения — отличается только основание (радикс). Десятичная (основание 10) — это повседневная система; двоичная (основание 2) — это то, как данные физически хранятся; восьмеричная (основание 8) и шестнадцатеричная (основание 16) — это компактные сокращения для группировки битов. Таблица ниже выравнивает наиболее часто встречающиеся значения по всем четырем системам.
| Десятичная (основание 10) | Двоичная (основание 2) | Восьмеричная (основание 8) | Шестнадцатеричная (основание 16) |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 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 |
| 16 | 10000 | 20 | 10 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
| 256 | 100000000 | 400 | 100 |
| 1024 | 10000000000 | 2000 | 400 |
Заметьте, что 255 (наибольшее значение, которое может содержать 8-битный байт) — это восемь единиц в двоичной системе и FF в шестнадцатеричной системе, в то время как 256 требует девятого бита. Эти граничные значения постоянно появляются в цветах, размерах памяти и масках сети.
Ключевые термины объяснены
- Основание / Радикс
- Количество различных символов цифр, которое использует система, и значение, на которое умножается каждая позиция при движении влево. Десятичная имеет основание 10 (цифры 0–9), двоичная основание 2 (0–1), восьмеричная основание 8 (0–7) и шестнадцатеричная основание 16 (0–9, затем A–F). Цифра \(d_i\) в позиции \(i\) вносит \(d_i \cdot \text{основание}^{\,i}\) в общий результат.
- Бит
- Двоичная цифра — наименьшая единица данных, содержащая одиночный 0 или 1. \(n\) битов могут представлять \(2^n\) различных значений.
- Полубайт
- Группа из 4 битов. Полубайт содержит \(2^4 = 16\) значений, что соответствует ровно одной шестнадцатеричной цифре (0–F). Вот почему шестнадцатеричная система так аккуратно отображается в двоичную — каждая шестнадцатеричная цифра — это один полубайт.
- Байт
-
Группа из 8 битов (два полубайта), представляющая \(2^8 = 256\) значений, от 0 до 255. Байт записывается как две шестнадцатеричные цифры, например
FF= 255. - Старший значащий разряд (СЗР)
- Крайняя левая цифра, несущая наибольший позиционный вес (наивысшую степень основания). В двоичной системе это старший значащий бит (СЗБ).
- Младший значащий разряд (МЗР)
- Крайняя правая цифра с наименьшим весом (\(\text{основание}^0 = 1\)). В двоичной системе это младший значащий бит (МЗБ) и определяет, является ли значение нечётным или чётным.
- Префикс 0b
-
Соглашение (используется в C, Python и других), обозначающее литерал как двоичный, например
0b1010означает десятичное 10. Префикс0b— это только обозначение, не часть значения. - Префикс 0x
-
Стандартный маркер для шестнадцатеричного литерала, например
0xFFозначает десятичное 255. Восьмеричная часто показывается с ведущим0или префиксом0o. - Шестнадцатеричные цифры A–F
-
Поскольку шестнадцатеричная система требует 16 символов, а обычные цифры — только 0–9, буквы A–F обозначают значения 10–15:
A=10,B=11,C=12,D=13,E=14,F=15. Они могут быть написаны в верхнем или нижнем регистре.