Перевод чисел между системами счисления
255 = 11111111₂ = 377₈ = FF₁₆
Алгоритм перевода в другую систему счисления
Число делят на основание новой системы, записывают остаток, а частное делят снова, пока оно не станет нулём. Остатки, прочитанные снизу вверх, дают запись числа. Пример для 255 в двоичной системе:
- 255 ÷ 2 = 127, остаток 1
- 127 ÷ 2 = 63, остаток 1
- 63 ÷ 2 = 31, остаток 1
- 31 ÷ 2 = 15, остаток 1
- 15 ÷ 2 = 7, остаток 1
- 7 ÷ 2 = 3, остаток 1
- 3 ÷ 2 = 1, остаток 1
- 1 ÷ 2 = 0, остаток 1
Остатки снизу вверх: 11111111, то есть 255 = 11111111₂.
То же для шестнадцатеричной системы, где остатки 10–15 записываются буквами A–F: 255 ÷ 16 = 15, остаток 15 (F); 15 ÷ 16 = 0, остаток 15 (F). Итог: 255 = FF₁₆, в восьмеричной — 377₈.
Обратный перевод — сумма цифр, умноженных на степени основания. Для 1111 1111₂: 2⁷ + 2⁶ + 2⁵ + 2⁴ + 2³ + 2² + 2¹ + 2⁰ = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255.
| Десятичная | Двоичная | Восьмеричная | Шестнадцатеричная |
|---|---|---|---|
| 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 | 1 0000 | 20 | 10 |
| 17 | 1 0001 | 21 | 11 |
| 18 | 1 0010 | 22 | 12 |
| 19 | 1 0011 | 23 | 13 |
| 20 | 1 0100 | 24 | 14 |
| 32 | 10 0000 | 40 | 20 |
| 64 | 100 0000 | 100 | 40 |
| 100 | 110 0100 | 144 | 64 |
| 128 | 1000 0000 | 200 | 80 |
| 255 | 1111 1111 | 377 | FF |
| 256 | 1 0000 0000 | 400 | 100 |
| 1 024 | 100 0000 0000 | 2 000 | 400 |
Как перевести число из десятичной системы в двоичную
255 в двоичной системе — 11111111, в восьмеричной — 377, в шестнадцатеричной — FF. Из десятичной записи переводят делением с остатком на новое основание, а остатки читают снизу вверх. Обратно — сумма цифр, умноженных на степени основания: 377₈ = 3 × 64 + 7 × 8 + 7 = 255. Расчёт на длинной арифметике: 2⁶⁴ = 18446744073709551616 переводится точно.
Зачем нужны восьмеричная и шестнадцатеричная системы
Обе — сокращённая запись двоичных чисел: восьмеричная цифра заменяет три бита, шестнадцатеричная — четыре. Байт 0–255 занимает два шестнадцатеричных знака, поэтому так записывают цвета (#FF8800). Восьмеричная живёт в правах доступа Unix: chmod 755 — это 493. Из учебных задач: 1024 = 10000000000₂ = 2000₈ = 400₁₆.
Как записать основание в коде
В Python, JavaScript и C основание задают префиксом: 0b1010, 0o17, 0xFF; длинные числа разбивают подчёркиванием: 1_000_000. Конвертер принимает оба варианта, регистр букв не важен. Выше 16 цифрами служат латинские буквы, до Z = 35 в основании 36.
Типичные ошибки перевода
Первая — не указать основание ввода: 10 в двоичной записи равно двум, в шестнадцатеричной — шестнадцати. Вторая — чужие цифры: в восьмеричной нет 8 и 9, конвертер укажет лишнюю. Третья — дроби: 12,5 не переводится. Четвёртая — знак: отрицательные пишутся с минусом (−FF), а не в дополнительном коде процессора.
Частые вопросы
Сколько будет 255 в двоичной системе?
11111111 — восемь единиц. Это наибольшее число, которое помещается в один байт; 256 уже записывается девятью цифрами: 100000000.
Как перевести шестнадцатеричное число в десятичное?
Умножьте каждую цифру на степень 16 и сложите: FF = 15 × 16 + 15 = 255, 7EA = 7 × 256 + 14 × 16 + 10 = 2026. Буквы A–F означают 10–15.
Что означают префиксы 0x, 0b и 0o?
Так в коде помечают основание: 0x — шестнадцатеричная запись, 0b — двоичная, 0o — восьмеричная. Конвертер понимает их и в режиме «по префиксу» сам выбирает систему.
Можно ли перевести дробное число?
Нет, инструмент работает с целыми. Дробь вроде 0,1 в двоичной системе не имеет конечной записи, поэтому такой перевод всегда приближённый и здесь не выполняется.
Почему программисты используют шестнадцатеричную систему?
Одна её цифра равна ровно четырём двоичным разрядам, поэтому байт записывается двумя знаками: 00–FF. Цвет #FF8800 — это три байта 255, 136 и 0.
Статьи по теме
Похожие конвертеры
Расчёты носят справочный характер: коэффициенты взяты из официальных определений единиц, но округление при выводе может давать расхождение в последнем знаке. Откуда данные
Обновлено