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

Иван Корнев·09.04.2026·4 мин

Чтобы перевести число между системами счисления в Excel, используйте встроенные инженерные функции: DEC2BIN (десятичное в двоичное), BIN2DEC, DEC2HEX, HEX2DEC, DEC2OCT и OCT2DEC. Они позволяют мгновенно конвертировать целые числа между десятичной, двоичной, восьмеричной и шестнадцатеричной системами без сложных вычислений.

Основные функции для конвертации

Вкладка «Формулы» → группа «Другие функции» → «Инженерные» содержит все необходимые инструменты. Синтаксис большинства функций прост: =ИМЯ_ФУНКЦИИ(число; [разряды]).

Из десятичной системы

Эти функции преобразуют обычное число (основание 10) в другие форматы:

  • =DEC2BIN(число; [разряды]) — перевод в двоичную систему (0 и 1). Аргумент [разряды] задает минимальное количество знаков (добавляет ведущие нули).
  • =DEC2OCT(число; [разряды]) — перевод в восьмеричную систему (цифры 0–7).
  • =DEC2HEX(число; [разряды]) — перевод в шестнадцатеричную систему (0–9, A–F).

Аргумент «разряды» полезен для выравнивания данных. Например, =DEC2HEX(255; 4) вернет 00FF, а не просто FF. Это важно при работе с адресами памяти или цветовыми кодами.

В десятичную систему

Обратные функции принимают строку или число в другой системе и возвращают десятичное значение:

  • =BIN2DEC(число) — из двоичной.
  • =OCT2DEC(число) — из восьмеричной.
  • =HEX2DEC(число) — из шестнадцатеричной.

Важно передавать исходные значения как текст, если они содержат буквы (A-F) или начинаются с нуля, чтобы Excel не интерпретировал их ошибочно.

Примеры использования формул

Рассмотрим практические кейсы перевода конкретных значений.

ЗадачаФормулаРезультатПояснение
Десятичное 10 в двоичное=DEC2BIN(10)1010Базовая конвертация
Двоичное 1010 в десятичное=BIN2DEC("1010")10Вход как текст надежнее
Десятичное 255 в HEX (4 знака)=DEC2HEX(255; 4)00FFС добавлением ведущих нулей
Шестнадцатеричное 1A в десятичное=HEX2DEC("1A")26Буквы регистр не важен
Десятичное 64 в восьмеричное=DEC2OCT(64)100Стандартный перевод

Ограничения и работа с отрицательными числами

Стандартные функции Excel имеют строгие ограничения по диапазону значений, так как используют 10-разрядное представление (для двоичной системы).

  1. Диапазон значений:

    • Для DEC2BIN и BIN2DEC допустимый диапазон: от -512 до 511.
    • Попытка перевести число 512 или -513 вернет ошибку #ЧИСЛО! (#NUM!).
    • Для шестнадцатеричной и восьмеричной систем диапазоны шире (до 28 бит со знаком), но также конечны.
  2. Отрицательные числа:

    • Функции поддерживают отрицательные значения, используя дополнительный код (two's complement).
    • Например, =DEC2BIN(-1) вернет 1111111111 (10 единиц).
    • При использовании аргумента [разряды] для отрицательных чисел функция может вернуть ошибку, если указанное количество разрядов недостаточно для представления знака.

Не пытайтесь использовать эти функции для чисел больше 511 (в случае двоичной системы). Для работы с большими значениями (например, 32-битными или 64-битными идентификаторами) потребуется использование надстроек VBA или разбиение числа на части.

Конвертация через промежуточную систему

Прямого перевода, например, из двоичной сразу в шестнадцатеричную (BIN2HEX) в стандартном наборе функций нет. Алгоритм действий всегда двухступенчатый:

  1. Перевод из исходной системы в десятичную.
  2. Перевод из десятичной в целевую систему.

Пример: Перевод двоичного 11110000 в шестнадцатеричный вид. Формула: =DEC2HEX(BIN2DEC("11110000")) Результат: F0

Вы можете вкладывать функции друг в друга для экономии места в ячейках.

Работа с дробными числами

Встроенные инженерные функции работают только с целыми числами. Если вам нужно перевести дробь (например, 10.5 в двоичную систему), стандартные формулы выдадут ошибку или обрежут дробную часть.

Для перевода дробей используется алгоритм ручного расчета:

  1. Целая часть переводится стандартными функциями.
  2. Дробная часть умножается на основание новой системы (на 2 для двоичной).
  3. Целая часть результата записывается как следующий разряд.
  4. Процесс повторяется с новой дробной частью до получения нуля или достижения нужной точности.

Автоматизировать этот процесс в ячейках можно только с помощью пользовательских функций на VBA.

Частые ошибки

  • Ошибка #ЗНАЧ! (#VALUE!): Возникает, если в функцию передан недопустимый символ (например, буква "G" в шестнадцатеричном числе или пробел в строке).
  • Ошибка #ЧИСЛО! (#NUM!): Число выходит за допустимый диапазон функции или указано слишком малое количество разрядов для отрицательного числа.
  • Потеря ведущих нулей: При вводе двоичного числа как обычного числа (без кавычек и формата текста) Excel может убрать начальные нули. Всегда форматируйте ячейки с исходными данными как Текст или ставьте апостроф перед числом ('00101).

FAQ

Можно ли перевести число из пятеричной системы счисления? Нет, стандартные функции поддерживают только основания 2, 8, 10 и 16. Для других систем (3, 5, 12 и т.д.) необходимо писать макрос на VBA или использовать формулы с степенями для ручного пересчета в десятичную систему.

Почему функция DEC2BIN возвращает ошибку для числа 1000? Потому что максимальное положительное число для этой функции — 511. Число 1000 требует более 10 бит, а функция ограничена 10 битами.

Как сделать буквы в шестнадцатеричном коде строчными? Функции DEC2HEX и HEX2DEC по умолчанию возвращают заглавные буквы (A-F). Чтобы получить строчные, оберните формулу в функцию СТРОЧН (или LOWER): =СТРОЧН(DEC2HEX(255))ff.