16-bit Hex Endian Converter
Swap the byte order of a 16-bit (2-byte) hex value — locked to exactly 2 bytes, padding or rejecting input that doesn't fit.

Built by
Swapnil SanghviFull-Stack Web Developer & WordPress Developer
Swapnil Sanghvi is a full-stack web and WordPress developer, UI designer, and full-time freelancer who builds and maintains Hex Calculator.
Further reading: Endianness — Wikipedia
How 16-bit Byte Swap Works
Pad the value to exactly 4 hex digits (2 bytes) if it's shorter, then swap the two bytes — the byte that was first becomes second, and vice versa. A value that needs more than 2 bytes is rejected rather than truncated.
Where 16-bit Byte Swap Actually Comes Up
Converting a Network Port Number's Byte Order
Port numbers are stored in a 16-bit field, transmitted big-endian in network protocols but often needing conversion to a host system's native byte order for local use.
port 80 (0x0050) byte-swapped
Reading a 16-bit Field From a Binary Protocol
Many binary protocols pack 16-bit length or ID fields — converting between the wire format's byte order and your code's native order is a routine parsing step.
16-bit length field in a packet header
Verifying a uint16_t Swap Function
Checking that a language's or library's 16-bit byte-swap function (like C's __builtin_bswap16) produces the expected result for a known test value.
confirm bswap16(0x1234) == 0x3412
Why Use This Calculator Instead of Doing It by Hand
- Locks to exactly 16 bits, catching a value that doesn't fit rather than silently mishandling it
- Pads shorter values to the full 2 bytes automatically
- Runs entirely in your browser — nothing you type gets sent anywhere
- Removes the ambiguity of a general-purpose converter when you specifically need 16-bit width
Limitations
- Locked to exactly 16 bits (2 bytes) — a value with more digits returns an error instead of being truncated or reinterpreted.
- This is a pure byte-order swap, not a bit-order reversal — the bits inside each byte stay in the same order.
Frequently Asked Questions
Why use a fixed 16-bit converter instead of the general one?
It guarantees the result is always exactly 2 bytes, which matters when you're working with a value you know is a specific 16-bit type (like a uint16_t) and want the padding to be explicit and consistent rather than inferred from digit count.
What happens if my value needs more than 2 bytes?
It's rejected with an error rather than silently truncated — this converter is locked to exactly 16 bits, so a larger value means either the wrong tool or a data-size mismatch worth investigating.
What's a common 16-bit value that needs endian conversion?
Network port numbers are a classic example — they're 16-bit values, transmitted big-endian on the wire but often stored little-endian in a host system's memory.
Does this pad a shorter value automatically?
Yes — a value with fewer than 4 hex digits (2 bytes) is padded with leading zeros to fill the full 16 bits before the byte order is reversed.