Tools Modbus Register Decoder

Modbus Register Decoder

Decode Modbus holding registers into int16, uint16, int32, uint32, and float32 across all four byte/word orders (ABCD, CDAB, BADC, DCBA). Free field tool.

Register 1 as a single 16-bit value

Unsigned (uint16)17530
Signed (int16)17530
Hex0x447A
Binary0100 0100 0111 1010

Both registers as a 32-bit value, by byte order

Orderuint32int32float32
ABCD — big-endian114884608011488460801000
CDAB — word swap17530175302.456476e-41
BADC — byte swap205127680020512768002.544225e+35
DCBA — little-endian31300313004.386064e-41

If the float looks like garbage, you have the wrong byte order — try another row. ABCD is the Modbus standard; CDAB (word swap) is the most common variation on PLCs and power meters.

Why the same registers show different numbers

A Modbus register is only 16 bits, so any value bigger than 65,535 — most floats and large counters — is split across two registers. The Modbus spec doesn't mandate how those two registers (and the bytes inside them) are ordered, so every vendor picked their own. Read the pair in the wrong order and a temperature of 72.5 comes back as 3.4×10³⁸.

Order Also called Seen on
ABCD Big-endian Modbus standard, many transmitters
CDAB Word swap / mid-little Most PLCs, power/energy meters
BADC Byte swap / mid-big Some gateways and legacy gear
DCBA Little-endian A few Windows-derived devices

The trick in the field: read a register whose real value you know (a setpoint, or a value the device's own display shows), try each order here until it matches, then use that order for every 32-bit value on the device. For the difference between the serial and Ethernet flavors of Modbus, see Modbus RTU vs Modbus TCP: when to use each.