Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Удаленная работа
Помощь проекту


Конвертер систем счисления (DEC/HEX/BIN/OCT)



Системы счисления

Перевод целых чисел между десятичной, шестнадцатеричной, двоичной и восьмеричной системами. Для программирования микроконтроллеров, регистров, масок битов.

Что это и зачем

N = dₖ·bᵏ + … + d₂·b² + d₁·b + d₀ = Σ dᵢ·bⁱ
b — основание системы, dᵢ — цифра i-го разряда

DEC (0–9) · HEX (0–F, префикс 0x) · BIN (0–1, 0b) · OCT (0–7)

Позиционная система счисления записывает число цифрами, а вес каждой цифры зависит от её позиции: крайняя правая стоит на весе b⁰ = 1, следующая — на весе b¹, дальше b², и так далее. Основание b показывает, сколько разных цифр в системе: десять в десятичной, шестнадцать в шестнадцатеричной, две в двоичной и восемь в восьмеричной. Само число от способа записи не меняется — меняется только его форма: 255, 0xFF, 0b11111111 и 0o377 обозначают одно и то же количество. Этот конвертер переводит целое число из выбранной системы сразу во все четыре.

В электронике и программировании микроконтроллеров каждая система удобна для своей задачи. Десятичная привычна человеку. Шестнадцатеричная компактно описывает содержимое регистров и адреса памяти: ровно две HEX-цифры укладываются в один байт (8 бит, диапазон 0x00…0xFF), а четыре — в 16-битное слово. Двоичная показывает каждый бит отдельно — это язык битовых масок, портов ввода-вывода и флагов состояния. В вебе тем же способом кодируют цвет: #RRGGBB — это три байта яркости красного, зелёного и синего. Восьмеричная сегодня встречается редко: в правах доступа Unix и в старом коде.

Как выполняется перевод

Перевод из десятичной системы в любую другую — это последовательное деление с остатком на основание: число делят на b, пока частное не обнулится, а остатки, выписанные снизу вверх, дают цифры результата. Для HEX остатки 10…15 заменяют буквами A…F. Обратный перевод, в десятичную, выполняется по формуле выше: каждую цифру умножают на основание в степени её позиции и всё складывают. Калькулятор делает ровно это, поэтому переключение системы ввода мгновенно пересчитывает все четыре строки вывода.

У двоичной, восьмеричной и шестнадцатеричной систем есть удобное родство: основания 2, 8 и 16 — это степени двойки, поэтому группы битов переводятся напрямую, без промежуточной десятичной. Одна HEX-цифра — это ровно 4 бита (полубайт), одна OCT-цифра — 3 бита. Например, 0b11110000 читается двумя группами по четыре: 1111 = F и 0000 = 0, то есть 0xF0. Ввод понимает необязательные префиксы 0x, 0b, 0o и проверяет набор допустимых цифр (в двоичной только 0 и 1, в восьмеричной 0–7). Переводятся только целые неотрицательные числа; верхний предел — 2⁵³ (9 007 199 254 740 991), это наибольшее точно представимое целое.

Справочные данные

Первые шестнадцать значений стоит помнить наизусть — это одна HEX-цифра (полубайт) и её вид в остальных системах (двоичный столбец приведён без ведущих нулей, ровно так, как выводит калькулятор):

DECHEXBINOCT
0000
1111
22102
33113
441004
551015
661106
771117
88100010
99100111
10A101012
11B101113
12C110014
13D110115
14E111016
15F111117
16101000020

Стандартные разрядности регистров и их предельные значения (все биты установлены в единицу):

РазрядностьДиапазон (DEC)Максимум (HEX)
4 бита (ниббл)0…150xF
8 бит (байт)0…2550xFF
16 бит (слово)0…65 5350xFFFF
32 бита0…4 294 967 2950xFFFFFFFF

Где это нужно на практике

Шестнадцатеричные и двоичные числа сопровождают почти любую работу с железом. Значения счётных регистров при настройке таймеров и прескейлеров МК задают в HEX, а разрядность таймера для ШИМ-сигнала считают в битах. Код АЦП — это целое от 0 до 2ᴺ−1, которое естественно читать в двоичном виде, а его эффективную разрядность в битах оценивает расчёт SNR и ENOB. Обратную задачу решает R-2R ЦАП: он превращает двоичный код обратно в напряжение, где каждый бит имеет свой вес.

В цифровой связи всё измеряется битами: кадр UART состоит из старт-бита, битов данных и стоп-бита, отклонение частоты порта оценивает калькулятор ошибки бодрейта, а пропускную способность канала — расчёт битрейта потока. Битовый тайминг закладывают и в шине CAN. В обработке сигналов число отсчётов и частотных корзин БПФ — степени двойки, их считает разрешение БПФ.

Двоичный вид незаменим для битовых масок. Чтобы включить один бит регистра, его объединяют по ИЛИ с маской (например, третий бит — это 0b00000100, то есть 0x04), а чтобы сбросить — применяют И с инверсией маски. Проверка бита — это И с маской и сравнение с нулём. Сдвиг влево на один разряд (<<) умножает число на 2, сдвиг вправо (>>) делит на 2 — это прямое следствие позиционной записи с основанием 2. Именно поэтому регистры периферии в даташитах почти всегда расписаны по битам, а их адреса и значения приводят в HEX.

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

Самая частая путаница — набор цифр: в двоичной не бывает цифры 2, в восьмеричной — 8 и 9, поэтому «19» нельзя прочитать как двоичное или восьмеричное число. Вторая ловушка — ведущий ноль: в языке C запись 0377 означает восьмеричное 255, а не десятичное триста семьдесят семь, из-за чего битовые маски легко задать неверно. Третья — потерянные ведущие нули: 0b101 и 0b00000101 — это одно и то же число 5, но при работе с 8-битным регистром биты принято дополнять до полного байта. Наконец, помните про знак и предел: переводятся только целые неотрицательные числа, а всё, что больше 2⁵³, выходит за границу точной арифметики.

Пример

По умолчанию в поле стоит 255 в десятичной системе. Деление с остатком на 16 даёт 255 = 15·16 + 15 — две цифры F, то есть 0xFF. В двоичном виде это восемь единиц: 0b11111111 = 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255. В восьмеричной 255 = 3·64 + 7·8 + 7 = 0o377. Проверка обратным переводом: 0xFF = 15·16 + 15 = 255. Число 255 — это максимум для одного байта: все восемь бит установлены в единицу.

См. также: конвертер величин · приставки СИ · все калькуляторы


Частые вопросы

Как перевести число в двоичную систему?

Введите десятичное число — калькулятор покажет его в двоичной (BIN), шестнадцатеричной (HEX) и восьмеричной (OCT). Например, 255 = 0xFF = 0b11111111. Работает и в обратную сторону.

Почему байт — это 0xFF?

Один байт — 8 бит, значения 0…255. Два шестнадцатеричных разряда как раз кодируют байт: 0x00 = 0, 0xFF = 255. Поэтому регистры и адреса удобно писать в HEX.


Похожие калькуляторы — Единицы и конвертеры
Конвертер величин  ·  Температура °C/°F/K  ·  Угловая скорость  ·  Тесла ↔ Гаусс  ·  Энергия Дж/Вт·ч/эВ  ·  Приставки СИ  ·  все калькуляторы →


© 2003—2026 «KAZUS.RUN - Электронный портал»