Конвертер систем счисления с поддержкой отрицательных чисел
Мир компьютеров работает на нулях и единицах, но люди мыслят десятками. А программисты? Им приходится понимать все, что находится между этим. Независимо от того, отлаживаете ли вы низкоуровневый код, настраиваете цвета в CSS, рассчитываете IP-маски или решаете задачи по информатике, вы сталкиваетесь с необходимостью преобразования чисел между системами счисления.
Обычные калькуляторы в Windows или на мобильных устройствах часто медленны и неудобны. Наш интеллектуальный конвертер систем счисления был разработан программистами для программистов. Он предлагает мгновенную конвертацию в реальном времени, поддержку чрезвычайно больших чисел и, как один из немногих онлайн-инструментов, правильно работает с отрицательными числами в двоичном формате.
Что умеет этот конвертер систем счисления?
При разработке этого виджета мы сосредоточились на решении наиболее частых проблем программистов:
- Реактивность в реальном времени: Никакой кнопки “Вычислить”. Начните вводить данные в поле HEX, и вы сразу увидите, как меняются BIN и DEC.
- Поддержка отрицательных чисел (Signed Integers): Большинство онлайн-конвертеров не справятся, если вы введете
-5. Мы справимся. Благодаря выбору разрядности (8, 16, 32, 64 бита) мы имитируем точное поведение процессора, используя так называемое дополнение до двух. - Читабельность двоичного кода: Смотреть на
1110101011011110утомительно для глаз. Наш инструмент может автоматически форматировать вывод по 4 бита (нибблы) в1110 1010 1101 1110, что значительно снижает количество ошибок при копировании. - Поддержка BigInt: Нужно преобразовать 64-битное число или хеш? Стандартный JavaScript ограничивается числом $2^{53}$. Наш движок справляется с числами произвольной длины в режиме “Беззнаковые” (Unsigned).
Руководство по системам счисления: Когда какую использовать?
1. Десятичная система счисления (DEC - Decimal)
- Основание: 10 (цифры 0-9)
- Использование: Повседневная жизнь, финансы, подсчет циклов в коде.
- Интересный факт: Компьютеры ее не понимают, им приходится переводить ее в двоичную.
2. Двоичная система счисления (BIN - Binary)
- Основание: 2 (цифры 0, 1)
- Использование: Машинный код, логические вентили, маскирование IP-адресов.
- Совет: Каждая цифра представляет собой один бит. 8 бит составляют 1 байт (Byte).
3. Шестнадцатеричная система счисления (HEX - Hexadecimal)
- Основание: 16 (цифры 0-9, буквы A-F)
- Использование: Компактная запись двоичного кода. Один HEX-символ представляет ровно 4 бита (ниббл). Два символа (например,
FF) представляют целый байт. - Примеры:
- Цвета в вебе:
#FF5733(Красный, Зеленый, Синий). - MAC-адреса:
00:1A:2B:3C:4D:5E. - Дампы памяти (Memory dumps).
- Цвета в вебе:
4. Восьмеричная система счисления (OCT - Octal)
- Основание: 8 (цифры 0-7)
- Использование: Исторически более старые компьютеры, сегодня особенно права доступа Linux (chmod).
- Пример: Команда
chmod 755устанавливает права rwx-rx-rx (чтение, запись, выполнение).
Как правильно работать с отрицательными числами?
Это самая продвинутая функция нашего конвертера. В компьютерной памяти не существует знака “минус”. Чтобы компьютер сохранил отрицательное число, чаще всего используется метод дополнения до двух (Two’s Complement).
Однако результат преобразования отрицательного числа зависит от того, сколько бит выделено для переменной. Поэтому в верхней панели вы найдете переключатель Разрядность.
Пример: Как выглядит число -5?
Попробуйте сами в нашем конвертере:
-
Установите разрядность на 8-бит.
- Введите в DEC:
-5. - Результат HEX:
FB. - Результат BIN:
1111 1011. - Пояснение: $256 - 5 = 251$ (что равно FB).
- Введите в DEC:
-
Установите разрядность на 16-бит.
- Введите в DEC:
-5. - Результат HEX:
FFFB. - Пояснение: Поскольку у нас больше места, “единицы” заполнят оставшееся пространство слева.
- Введите в DEC:
-
Установите разрядность на Только положительные (Unsigned).
- Если вы введете
-5, поле станет красным. Этот режим не поддерживает отрицательные числа, так как это потребовало бы бесконечно много единиц.
- Если вы введете
Профессиональный совет: Если вы работаете с цветами или IP-адресами, всегда используйте режим **” Только положительные”. Если вы выполняете задания по C/C++ или ассемблеру, переключитесь на 32-бит или 64-бит.
Таблица быстрых преобразований (Шпаргалка)
Для быстрой ориентации здесь приведены основные значения, которые должен знать наизусть каждый “айтишник”.
| Десятичное (DEC) | Шестнадцатеричное (HEX) | Двоичное (BIN) | Примечание |
|---|---|---|---|
| 0 | 00 | 0000 | Ноль |
| 1 | 01 | 0001 | |
| 10 | 0A | 1010 | |
| 15 | 0F | 1111 | Максимальное значение 4 бит (Ниббл) |
| 16 | 10 | 0001 0000 | |
| 127 | 7F | 0111 1111 | Макс. значение для signed 8-бит (char) |
| 255 | FF | 1111 1111 | Макс. значение для unsigned 8-бит (байт) |
| 65 535 | FFFF | … | Макс. значение для 16-бит |
Часто задаваемые вопросы (FAQ)
Что означает "Bit Depth" (Разрядность)?
Определяет, сколько памяти выделено для числа.- 8-бит: Значения от 0 до 255 (или от -128 до 127). Соответствует типу
charилиbyte. - 16-бит: Значения до 65 535. Соответствует типу
short. - 32-бит: Стандартный
intв современных языках. - 64-бит: Для очень больших чисел (
long long,BigInt).
Почему число 255 в HEX записывается как FF?
Шестнадцатеричная система счисления имеет 16 цифр (0-9 и A-F), где F имеет значение 15. ЧислоFF рассчитывается как: $(15 \times 16^1) + (15 \times 16^0) = 240 + 15 = 255$.
Как преобразовать HEX-цвет в RGB?
Цвет на сайте, например,#E05412, состоит из трех байтов: Красный (E0), Зеленый (54), Синий (12).
Введите в наш конвертер "E0" в поле HEX -> получите 224.
Введите "54" -> получите 84.
Введите "12" -> получите 18.
Результат: rgb(224, 84, 18).
Что означают префиксы 0x, 0b или 0o?
Чтобы программисты различали системы счисления, используются префиксы:0x= Шестнадцатеричный (например, 0xFF)0b= Двоичный (например, 0b101)0o= Восьмеричный (например, 0o755)
Почему поле стало красным?
Это функция проверки ввода. Она означает, что вы ввели символ, который не принадлежит данной системе счисления. Например:- Буква "G" в HEX (разрешены только A-F).
- Цифра "2" в BIN (разрешены только 0 и 1).
- Цифра "8" в OCT (разрешены только 0-7).