Калькулятор систем счисления
Преобразование целого числа в двоичную, восьмеричную, десятичную и шестнадцатеричную системы.
Как пользоваться этим калькулятором систем счисления
- Введите целое число
Введите неотрицательное целое число в поле «Целое число» (например, 255 или 4096).
- Посмотреть двоичное значение
Результат в двоичной системе отображает представление по основанию 2.
- Проверить восьмеричную и шестнадцатеричную системы
Ознакомьтесь с восьмеричными и шестнадцатеричными результатами для компактного представления.
- Проверить десятичное значение
Десятичный вывод подтверждает исходное значение для перекрестной проверки.
Как работает этот калькулятор систем счисления
Этот калькулятор систем счисления принимает целое число в десятичной системе (основание 10) и представляет его в двоичной (основание 2), восьмеричной (основание 8) и шестнадцатеричной (основание 16) — четырех системах счисления, наиболее часто используемых в вычислениях. Каждая позиционная система счисления работает одинаково: каждая позиция цифры представляет собой последовательную степень основания, а значение числа — это сумма каждой цифры, умноженной на ее позиционный вес. Преобразование между системами счисления является фундаментальной операцией в низкоуровневом программировании, проектировании цифровой логики, сетевой инженерии (адреса MAC и IPv6), цветовых кодах в CSS, масках прав доступа к файлам в Unix и проверке адресов памяти при отладке.
Последовательное деление: разделите N на целевое основание R, запишите остаток, повторите с частным, пока оно не достигнет 0, затем прочитайте остатки в обратном порядке Преобразование десятичного числа 255 в двоичную, восьмеричную и шестнадцатеричную системы. Для двоичной (R = 2): 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. Для восьмеричной (R = 8): 255 ÷ 8 = 31 ост. 7, 31 ÷ 8 = 3 ост. 7, 3 ÷ 8 = 0 ост. 3 → 377. Для шестнадцатеричной (R = 16): 255 ÷ 16 = 15 ост. 15 (F), 15 ÷ 16 = 0 ост. 15 (F) → FF.
Десятичное 4096 → двоичное 1000000000000, восьмеричное 10000, шестнадцатеричное 1000. Полезно для понимания того, что 4 КиБ = 4096 байт.
Десятичное 15 → двоичное 1111, восьмеричное 17, шестнадцатеричное F. Каждая шестнадцатеричная цифра соответствует ровно четырем битам; F = 1111.
- ✓ Входные данные должны быть неотрицательным целым числом (ноль или положительное целое). Дробные значения и отрицательные числа требуют расширенных алгоритмов (например, дополнительный код для знаковых двоичных чисел), которые выходят за рамки данного инструмента.
- ✓ Шестнадцатеричные цифры больше 9 обозначаются заглавными буквами A–F в соответствии с соглашениями большинства языков программирования, RFC и документации к оборудованию.
- ✓ Ведущие нули в выводе опускаются. Для представлений фиксированной ширины (например, 8-битных или 32-битных двоичных чисел) дополните результат вручную до нужной ширины.
- ✓ Калькулятор принимает только неотрицательные целые числа. Значения выше 2^53 − 1 (Number.MAX_SAFE_INTEGER в JavaScript) отклоняются, чтобы отображаемые цифры оставались точными.
- Каждая шестнадцатеричная цифра соответствует ровно четырем двоичным цифрам (битам), а каждая восьмеричная цифра — ровно трем битам. Эта взаимосвязь позволяет быстро переводить числа между шестнадцатеричной, восьмеричной и двоичной системами в уме, если запомнить 16 комбинаций нибблов.
- Полезные значения для запоминания: 0xFF = 255, 0x100 = 256, 0xFFFF = 65535, 0xFFFFFFFF = 4 294 967 295 (максимальное 32-битное целое число без знака).
- Права доступа к файлам Unix используют восьмеричную систему: 755 означает rwxr-xr-x (чтение/запись/выполнение для владельца, чтение/выполнение для группы и остальных). Каждая восьмеричная цифра кодирует три бита прав доступа.
- Шестнадцатеричные коды цветов CSS — это три последовательных байтовых значения, представляющих каналы красного, зеленого и синего цветов. Например, #FF8800 — это 255 красного, 136 зеленого и 0 синего.
- Теория позиционных систем счисления — Кнут Д. Э., Искусство программирования, Том 2: Получисленные алгоритмы, раздел 4.1
- IEEE 754-2019 — Стандарт арифметики с плавающей запятой (в контексте представления целых чисел)
- RFC 4291 — Архитектура адресации IP версии 6 (шестнадцатеричная нотация для IPv6)
Понимание систем счисления в вычислениях
Каждая позиционная система счисления использует основание (radix) и присваивает каждой цифре вес в зависимости от ее позиции. В десятичной системе (основание 10) крайняя правая цифра — это единицы, следующая — десятки, затем сотни. Двоичная система (основание 2) использует только 0 и 1, что напрямую соответствует состояниям транзистора «включено/выключено». Восьмеричная система (основание 8) группирует по три бита на цифру, а шестнадцатеричная (основание 16) — по четыре бита, используя A–F для значений 10–15. Перевод между системами осуществляется методом последовательного деления: число делится на целевое основание, записывается остаток, процесс повторяется с частным до нуля, после чего остатки считываются в обратном порядке. Этот алгоритм лежит в основе любого преобразования систем счисления в программировании.
Практические сценарии использования преобразования систем счисления для разработчиков
Разработчики используют преобразование систем счисления при анализе дампов памяти, отладке побитовых операций, интерпретации прав доступа к файлам и работе с цветовыми кодами. Права доступа в Unix (например, 755) являются восьмеричными: каждая цифра кодирует чтение/запись/выполнение для владельца, группы и остальных. Цвета CSS в формате hex, такие как #FF8800, представляют собой три последовательных байта в шестнадцатеричной системе. Адреса IPv6 записываются в hex. Битовые маски и флаги часто выражаются в hex для удобства чтения (0xFF для маски байта, 0xFFFF для 16 бит). При отладке низкоуровневого кода или сетевых протоколов перевод между десятичной, шестнадцатеричной и двоичной системами позволяет быстро увидеть структуру битов.
Часто задаваемые вопросы о калькуляторе систем счисления
Почему в вычислениях используются двоичная, восьмеричная и шестнадцатеричная системы?
Двоичная система напрямую соответствует состояниям транзисторов «включено/выключено», являясь родным языком оборудования. Восьмеричная и шестнадцатеричная системы — это компактные сокращения для двоичной: одна шестнадцатеричная цифра представляет ровно четыре бита, а одна восьмеричная — три бита. Программисты используют их для более краткой записи адресов, битовых масок и цветовых кодов.
Как выполнить преобразование в обратном направлении (например, из шестнадцатеричной в десятичную)?
Умножьте каждую цифру на основание системы в соответствующей степени и сложите результаты. Например, шестнадцатеричное 1A3 = 1×16² + 10×16¹ + 3×16⁰ = 256 + 160 + 3 = 419 в десятичной системе.
Что происходит с очень большими числами?
Калькулятор принимает значения только до предела безопасных целых чисел JavaScript: 2^53 − 1 (9 007 199 254 740 991). Числа большего размера отклоняются, так как в браузере они могут потерять младшие разряды.
Можно ли конвертировать отрицательные числа или дроби?
Этот инструмент работает с неотрицательными целыми числами. Отрицательные целые числа в вычислениях обычно представляются с использованием дополнительного кода в фиксированной разрядности, а дробные значения используют кодировку с плавающей запятой IEEE 754 — оба варианта требуют дополнительных параметров, которые этот калькулятор не собирает.
Почему префикс 0x появляется в коде, но не в результате?
Префикс 0x (а также 0b для двоичной и 0o для восьмеричной системы) — это синтаксис литералов конкретного языка, указывающий компилятору или интерпретатору ожидаемое основание системы счисления. Калькулятор выводит строку цифр без префикса, чтобы её можно было использовать в любом контексте.