🧮 Калькулятор программиста
Калькулятор программиста одновременно обрабатывает шестнадцатеричную, десятичную, восьмеричную и двоичную системы, а также битовые операции и фиксированные размеры слов, необходимые для низкоуровневого программирования. Введите значение в любой системе счисления, примените AND, OR, XOR, NOT, сдвиги или арифметические операции на 8, 16, 32 или 64 бита, и получите результат во всех четырёх системах сразу — бесплатно, полностью в вашем браузере, без загрузки данных.
Калькулятор программиста — это бесплатный онлайн-инструмент, который показывает число в шестнадцатеричной, десятичной, восьмеричной и двоичной системах одновременно, а также выполняет битовые операции (AND, OR, XOR, NOT, сдвиги) с фиксированным размером слова 8, 16, 32 или 64 бита — полностью в вашем браузере.
Tip: use your keyboard — digits, A–F, + − * /, & | ^ ~ for AND/OR/XOR/NOT, Enter for =.
Приватно по умолчанию. Этот инструмент работает полностью в браузере — ничего, что вы вводите, не загружается, и он работает офлайн.
Об инструменте
Программистский калькулятор работает так, как разработчики действительно думают о числах: в битах и байтах, одновременно в нескольких системах счисления. Введите значение в шестнадцатеричном, десятичном, восьмеричном или двоичном формате, и инструмент покажет все четыре представления одновременно, обновляя их в реальном времени при вводе. Ниже отображения интерактивная таблица битов позволяет увидеть каждый отдельный бит текущего значения и переключить любой из них одним касанием — это незаменимо при создании битовых масок, установке флагов или понимании, как устроен регистр.
Калькулятор поддерживает полный набор битовых операций, на которых опирается повседневное системное программирование: AND, OR, XOR, NOT, NAND, NOR, XNOR, а также логические сдвиги влево и вправо (Lsh и Rsh) и остаток от деления. Вы также можете выполнять обычные целочисленные арифметические операции — сложение, вычитание, умножение и деление — и брать дополнение до двух для любого значения. Каждый результат вычисляется с учетом выбранного размера слова: 8, 16, 32 или 64 бита. Переполнение обрабатывается точно так же, как в реальном аппаратном обеспечении фиксированной ширины, поэтому то, что вы видите, точно соответствует тому, что выдаст программа на C, Rust или Go. Если вы введете цифру, которая не помещается в выбранный размер слова, она будет отклонена с кратким уведомлением, а при изменении размера слова значение сохранится: в режиме со знаком отрицательное число будет расширено знаком при увеличении размера (8-битное FF, что равно -1, станет 32-битным FFFFFFFF, что по-прежнему равно -1), беззнаковые значения будут расширены нулями, а при уменьшении размера сохраняются только младшие биты.
Переключатель «Со знаком» переключает десятичное отображение между беззнаковой интерпретацией и интерпретацией в дополнении до двух, а также меняет поведение деления, остатка от деления и сдвига вправо — деление со знаком округляется к нулю, а сдвиг вправо со знаком сохраняет бит знака, как это делает компилятор. Внутри все вычисления производятся с использованием JavaScript BigInt и маскируются до ширины слова, что означает, что 64-битные операции точны; встроенные 32-битные битовые операторы, которые тихо ломают многие другие веб-калькуляторы, здесь никогда не используются.
Этот инструмент полезен и за пределами профессионального программирования. Студенты, изучающие архитектуру компьютеров, могут наблюдать, как происходят дополнение до двух, расширение знака и переполнение, бит за битом; любители электроники и встраиваемых систем могут составить точный байт для отправки в регистр устройства; а любой, кто отлаживает шестнадцатеричный дамп, формат файла или сетевой пакет, может извлечь отдельные поля без обращения к временному скрипту. Поскольку все системы счисления и все биты остаются видимыми одновременно, связь между шестнадцатеричным представлением значения, его битами и его десятичным значением всегда перед вами.
Поскольку инструмент ориентирован на низкоуровневую работу, он ускоряет выполнение таких распространенных задач, как преобразование цвета из шестнадцатеричного формата в десятичные каналы RGB, декодирование битов разрешений файлов Unix, извлечение полей из упакованного регистра состояния, проверка результата битовой маски и проверка выражений сдвига и маскирования перед добавлением в код. Все работает полностью в браузере — никакого сервера, никакого аккаунта, и ничего из введенного никогда не покидает устройство. Размер слова, режим знака и текущее значение сохраняются локально, поэтому калькулятор будет точно таким, как вы его оставили, при следующем использовании.
Как пользоваться
- Выберите размер слова — 8, 16, 32 или 64 бита — и включите «Знак», если хотите десятичное представление в дополнительном коде, деление и сдвиги.
- Выберите входную систему счисления, нажав на строку HEX, DEC, OCT или BIN, затем введите своё число с помощью клавиатуры или физической клавиатуры.
- Примените операцию: нажмите на кнопку битовой операции (AND, OR, XOR, NOT, NAND, NOR, XNOR), сдвиг (Lsh, Rsh), Mod или обычные + − × ÷.
- Введите второй операнд (он считывается в выбранной строке системы счисления, поэтому сначала переключите строки, если он находится в другой системе счисления), и нажмите =, чтобы вычислить; результат отобразится одновременно в шестнадцатеричном, десятичном, восьмеричном и двоичном форматах.
- Нажмите на любой бит в таблице битов, чтобы изменить его напрямую, или используйте кнопку копирования на любой строке системы счисления, чтобы скопировать это представление в буфер обмена.
Частые вопросы
- Этот программистский калькулятор бесплатный, приватный и работает офлайн?
- Да. Он полностью бесплатен без регистрации или входа в систему, а все вычисления выполняются локально в вашем браузере с использованием JavaScript — ничего, что вы вводите, не загружается. После загрузки страницы он работает полностью офлайн.
- Как это отличается от конвертера систем счисления?
- Конвертер систем счисления меняет только способ записи числа. Программистский калькулятор также выполняет вычисления: он производит битовые логические операции (AND, OR, XOR, NOT), сдвиг битов, модуль и арифметические операции с фиксированным размером слова, а также позволяет проверять и изменять отдельные биты — при этом показывая все четыре системы счисления одновременно.
- Что делают размеры слов 8/16/32/64 бит?
- Размер слова определяет, сколько бит занимает значение, как целочисленный тип в C, Rust или Go. Результаты маскируются до этого размера, поэтому переполнение оборачивается, а операции, такие как NOT, дают тот же результат, что и ваша программа. Используйте 8 бит для байта, 32 бита для обычного int или 64 бит для long.
- Что такое переключатель «Знак» и дополнительный код?
- Режим со знаком интерпретирует старший бит как знак с использованием дополнительного кода, представления, почти всеми процессорами. Это меняет десятичное отображение — например, 0xFF в 8 битах отображается как −1 — и делает деление, модуль и сдвиг вправо поведением со знаком. Отключите его для беззнаковых значений, таких как адреса или флаги битов.
- Какие битовые операции поддерживаются?
- AND, OR, XOR, NOT, NAND, NOR, XNOR, логический левый сдвиг (Lsh), правый сдвиг (Rsh), который логический при беззнаковом и арифметический при знаковом, модуль, отрицание в дополнительном коде (±), а также стандартные операции сложения, вычитания, умножения и деления.
- Правильно ли обрабатывает 64-битные значения?
- Да. Все математические операции используют JavaScript BigInt и маскируются до выбранного размера слова, поэтому 64-битные операции точны. Это избегает ошибки, присущей многим веб-калькуляторам, которые зависят от встроенных битовых операторов JavaScript, которые молча обрезают до 32 бит.
- Можно ли использовать клавиатуру?
- Да. Введите цифры и A–F напрямую, используйте + − * / для арифметики, & | ^ ~ для AND/OR/XOR/NOT, < и > для сдвигов, Enter для =, Backspace для удаления и Esc для очистки.
- Можете ли вы привести конкретный пример?
- Конечно. Чтобы прочитать красный канал шестнадцатеричного цвета #3A7BD5, выберите 32-битный беззнаковый режим, нажмите строку HEX и введите 3A7BD5, затем нажмите Rsh. Второе число считывается в той строке системы счисления, которая выбрана, поэтому нажмите строку DEC перед вводом 16 (введенное в строке HEX число 16 означает 0x16, сдвиг на 22 бита). Нажмите =, нажмите строку HEX снова, нажмите AND, введите FF и нажмите = — калькулятор показывает 58 в десятичном виде, что является значением красного канала (зеленый и синий каналы получаются аналогичным образом с другими сдвигами). В качестве другого примера, чтобы проверить, установлен ли бит выполнения владельцем в разрешении Unix 0o755, нажмите строку OCT, введите 755, нажмите AND, введите 100 (все еще в восьмеричной системе) и нажмите =; результат 100 не равен нулю, поэтому бит установлен. Работа с такими случаями одновременно во всех четырех системах счисления — это именно то, чего не может сделать один лишь преобразователь систем счисления.
- Загружает ли этот инструмент мои данные?
- Нет. Всё выполняется прямо в вашем браузере, поэтому ваши данные никогда не покидают устройство — после загрузки страницы он работает даже офлайн.