When storing multi-byte values in memory, we need a consistent convention for byte order. Some systems store the most significant byte first to match human reading order.
Big Endian stores the Most Significant Byte (MSB) at the lowest memory address, with remaining bytes stored in decreasing significance order.
- Take a 32-bit number:
0x12345678(bytes: 12=MSB, 34, 56, 78=LSB) - Store MSB (0x12) at lowest address (e.g., 1000h)
- Store next byte (0x34) at next address (1001h)
- Continue until LSB (0x78) at highest address (1003h)
- Memory dump reads left-to-right like human writing:
12 34 56 78
- Matches human reading order (easier to debug in memory dumps)
- Standard for network protocols (TCP/IP uses Big Endian = “network byte order”)
- Used by: Motorola 68k, SPARC (sometimes), PowerPC (can be bi-endian)
- Easier to interpret hex dumps visually
- Contrasts with: Little Endian — stores LSB first
- Built from: Endianness, Memory
- Builds into: Network Byte Order — TCP/IP mandates Big Endian
- Related: Motorola 68k, Sparc
- Less efficient for x86 CPUs (must convert to Little Endian for arithmetic)
- Conversion needed when receiving network data on Little Endian systems
- Not all RISC chips use Big Endian (ARM is Little Endian, MIPS can be either)