Modbus Float Converter
Convert two 16-bit Modbus registers into an IEEE 754 32-bit floating-point value, or convert a decimal Float32 value into its two Modbus register words.
What Is a Modbus Float?
A standard Modbus register contains only 16 bits, while a conventional IEEE 754 single-precision floating-point number contains 32 bits. Therefore, a Float32 value normally occupies two consecutive Modbus registers.
The two register words together form the complete 32-bit IEEE 754 bit pattern. Once those 32 bits are assembled in the correct order, they can be interpreted as a floating-point number.
How Two Modbus Registers Form a Float32
In the register convention used by this calculator, the first register contains the high-order 16 bits and the second register contains the low-order 16 bits.
16256
Hex = 3F80
Low register:
0
Hex = 0000
Combined 32-bit hex:
3F800000
IEEE 754 Float32:
1.0
Modbus Registers to Float Example
Consider the Float32 value 1.5. Its IEEE 754 hexadecimal representation is 3FC00000.
1.5
32-bit hex:
3FC00000
High register:
3FC0 hex
= 16320 decimal
Low register:
0000 hex
= 0 decimal
Entering registers 16320 and 0 therefore produces the Float32 value 1.5 with the register order used by this calculator.
Float32 to Modbus Registers
The reverse conversion starts with a decimal number, stores it as IEEE 754 Float32 and divides the resulting 32-bit pattern into two 16-bit register words.
-2.5
IEEE 754 hex:
C0200000
High register:
C020 = 49184
Low register:
0000 = 0
IEEE 754 Float32 Structure
| Field | Bits |
|---|---|
| Sign | 1 |
| Exponent | 8 |
| Fraction | 23 |
| Total | 32 |
The Modbus registers merely transport these 32 bits. Their interpretation as a floating-point value comes from IEEE 754 Float32 rules.
Why Register Order Matters
Modbus defines 16-bit registers, but equipment manufacturers do not all use the same convention when a 32-bit value spans multiple registers. Devices may change word order, byte order or both.
This calculator intentionally uses one clear convention: high register first and normal byte order, commonly represented as ABCD.
A B C D
High register:
A B
Low register:
C D
If equipment documentation specifies another arrangement, the register bytes must be reordered before interpreting them as the Float32 pattern.
Decimal and Hex Register Values
PLC software and Modbus tools often display register contents as unsigned decimal integers, while device documentation may show hexadecimal values. Both describe the same sixteen register bits.
16320
Register hex:
3FC0
Register binary:
0011111111000000
Where Modbus Float Values Are Used
Two-register floating-point values are commonly encountered in industrial automation equipment such as PLC-connected instruments, energy meters, process sensors, variable-frequency drives, controllers, gateways and monitoring devices.
Measurements such as temperature, pressure, flow, energy and process values may be represented as 32-bit floating-point data across two Modbus registers when the manufacturer’s register map specifies that format.
Important Modbus Float Notes
The first register is treated as the high 16-bit word.
The second register is treated as the low 16-bit word.
The byte sequence is interpreted as ABCD.
Both register inputs must be unsigned values from 0 through 65535.
Different industrial devices may use different byte or word arrangements.
This calculator does not perform engineering-unit scaling.
Always confirm the data type and register order in the device manufacturer’s Modbus documentation.