F32 Modbus Float

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.

2 × 16-Bit Registers IEEE 754 Float32 32-Bit Binary Hex ABCD Order
Modbus Float32 Converter High Word First
First 16-bit register, range 0 to 65535.
Second 16-bit register, range 0 to 65535.
Enter the decimal floating-point value.
This calculator uses register order ABCD: the first register contains the high 16 bits and the second register contains the low 16 bits of the IEEE 754 Float32 pattern.
Modbus Float Result
Float32 Value
High Register
Low Register
32-Bit Hex
High Word Hex
Low Word Hex
Register Order ABCD
Data Width 32 bits
IEEE 754 Float32 Binary

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.

High register:
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.

Float32:
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.

Input Float32:
-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.

32-bit bytes:
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.

Register decimal:
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

Important: this calculator converts IEEE 754 Float32 values stored in exactly two 16-bit Modbus registers.

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.

Modbus Float Converter FAQs

How many Modbus registers are required for Float32?
A 32-bit IEEE 754 Float32 value requires two 16-bit Modbus registers.
What register order does this converter use?
It uses high word first with normal byte order, represented as ABCD.
What range can each Modbus register contain?
Each raw 16-bit register can contain an unsigned integer from 0 through 65535.
Can this calculator convert a Float32 back into Modbus registers?
Yes. Enter a decimal Float32 value and the calculator returns its high and low 16-bit register words.
Why do two registers sometimes produce the wrong float?
A common cause is a different word or byte ordering convention in the device. Check the manufacturer’s register map before decoding.
Is a Modbus float always IEEE 754?
Many devices use IEEE 754 Float32, but Modbus itself does not define the interpretation of multi-register application data. Device documentation is authoritative.
Does this calculator change Modbus byte order?
No. It intentionally uses the ABCD arrangement only.
Does this calculator apply sensor scaling?
No. It converts the raw two-register bit pattern to and from IEEE 754 Float32 only.
Scroll to Top