Перевод чисел между системами счисления

255 = 11111111₂ = 377₈ = FF₁₆

FF в шестнадцатеричной
Двоичная
1111 1111
Восьмеричная
377
Десятичная
255
Шестнадцатеричная
FF

Алгоритм перевода в другую систему счисления

Число делят на основание новой системы, записывают остаток, а частное делят снова, пока оно не станет нулём. Остатки, прочитанные снизу вверх, дают запись числа. Пример для 255 в двоичной системе:

  1. 255 ÷ 2 = 127, остаток 1
  2. 127 ÷ 2 = 63, остаток 1
  3. 63 ÷ 2 = 31, остаток 1
  4. 31 ÷ 2 = 15, остаток 1
  5. 15 ÷ 2 = 7, остаток 1
  6. 7 ÷ 2 = 3, остаток 1
  7. 3 ÷ 2 = 1, остаток 1
  8. 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.

Таблица систем счисления: десятичная, двоичная, восьмеричная, шестнадцатеричная
ДесятичнаяДвоичнаяВосьмеричнаяШестнадцатеричная
0000
1111
21022
31133
410044
510155
611066
711177
81000108
91001119
10101012A
11101113B
12110014C
13110115D
14111016E
15111117F
161 00002010
171 00012111
181 00102212
191 00112313
201 01002414
3210 00004020
64100 000010040
100110 010014464
1281000 000020080
2551111 1111377FF
2561 0000 0000400100
1 024100 0000 00002 000400

Как перевести число из десятичной системы в двоичную

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.

Статьи по теме

Расчёты носят справочный характер: коэффициенты взяты из официальных определений единиц, но округление при выводе может давать расхождение в последнем знаке. Откуда данные

Обновлено