Перевод чисел

Десятичная, шестнадцатеричная, двоичная и восьмеричная системы. Правьте любое поле — остальные пересчитаются.

Как знаковое число (16 бит): 42. Отрицательные значения записываются дополнительным кодом, поэтому в HEX и BIN они выглядят как большие положительные.

Зачем нужна разрядность

Регистр контроллера хранит фиксированное число бит, и всё, что выходит за эту границу, просто отбрасывается. Регистр Modbus — 16 бит, то есть 0…65535. Поэтому разрядность здесь не украшение: при 8 битах число 300 превратится в 44, и именно так его увидит устройство.

Знаковые и беззнаковые числа

Один и тот же набор битов читается двумя способами. Беззнаково 0xFFFF — это 65535, со знаком — −1: старший бит считается знаком, а отрицательные значения записываются дополнительным кодом. Отсюда классическая путаница, когда температура −1 °C приезжает из регистра как 65535. Калькулятор показывает оба варианта одновременно.

Как читать запись

Двоичное значение разбито на тетрады по четыре бита — каждая тетрада ровно соответствует одному знаку в HEX, так что счётчик битов в голове не нужен. Шестнадцатеричное дополняется ведущими нулями до полной разрядности: 16-битное число всегда занимает четыре знака. Ввод принимает префиксы 0x, 0b, 0o и пробелы — можно вставлять значение прямо из лога обмена.