Modbus 32-Bit Register Converter
Combine two 16-bit Modbus registers into one 32-bit integer or split a 32-bit integer into high and low Modbus register words. View UINT32, INT32, hexadecimal and binary representations.
What Is a Modbus 32-Bit Register Value?
A standard Modbus register contains 16 bits. When an application needs a 32-bit integer, two consecutive registers can be combined to create one 32-bit data value.
The resulting 32-bit pattern may be interpreted as an unsigned UINT32 integer or as a signed INT32 two’s-complement integer, depending on the device register definition.
How Two 16-Bit Registers Form a 32-Bit Integer
With the high-word-first convention used by this calculator, the first register contributes the upper sixteen bits and the second register contributes the lower sixteen bits.
For example:
Low Register = 0
32-bit value = 1 × 65536 + 0
= 65536
Modbus Register Combination Example
Suppose the high register contains 4660 and the low register contains 22136.
Hex = 1234
Low register: 22136
Hex = 5678
Combined hex: 12345678
Unsigned decimal: 305419896
This demonstrates how two independent 16-bit register words become one continuous 32-bit binary value.
Split a 32-Bit Integer Into Modbus Registers
The reverse operation divides a 32-bit integer into its upper and lower sixteen-bit words.
Hex: 12345678
High register: 1234 hex = 4660
Low register: 5678 hex = 22136
These two register values can then represent the original 32-bit integer when the receiving system uses the same word order.
UINT32 vs INT32
The same 32 bits can represent either an unsigned or signed integer. The bit pattern itself does not change; only its interpretation changes.
| Type | Minimum | Maximum |
|---|---|---|
| UINT32 | 0 | 4,294,967,295 |
| INT32 | -2,147,483,648 | 2,147,483,647 |
Signed 32-Bit Modbus Example
When all 32 bits are set, the raw unsigned value is 4294967295. Interpreting the same pattern as signed two’s complement gives -1.
Low register: 65535 = FFFF
32-bit hex: FFFFFFFF
UINT32: 4294967295
INT32: -1
32-Bit Register Binary Layout
The high register occupies bits 31 through 16, while the low register occupies bits 15 through 0.
|
1234
Low Register bits 15 …….. 0
|
5678
Combined: 12345678
Displaying the complete binary representation is useful when examining masks, status fields, counters and raw device values.
Why 32-Bit Modbus Integers Are Used
A single 16-bit register can represent only 65,536 different unsigned states. Applications that require larger counters, accumulated measurements, timestamps or identifiers may therefore store a value across two registers.
This pattern is encountered in PLCs, industrial meters, process controllers, sensors, automation gateways and other devices that expose larger integer values through Modbus registers.
Modbus 32-Bit Integer vs Float32
Both a 32-bit integer and a Float32 occupy 32 bits and may therefore use two Modbus registers. However, their bit interpretations are completely different.
| Data Type | Width | Interpretation |
|---|---|---|
| UINT32 | 32 bits | Unsigned integer |
| INT32 | 32 bits | Two’s-complement signed integer |
| Float32 | 32 bits | IEEE 754 floating point |
For that reason, this calculator handles integer register values only and does not perform floating-point decoding.
Important Modbus 32-Bit Register Notes
The first register is treated as the high 16-bit word.
The second register is treated as the low 16-bit word.
UINT32 uses the range 0 through 4,294,967,295.
INT32 uses the range -2,147,483,648 through 2,147,483,647.
Signed values use standard 32-bit two’s-complement representation.
This calculator does not decode IEEE 754 floating-point values.
It does not rearrange Modbus byte or word order.
Always verify the data type and register order specified by the device manufacturer.