There are two types of byte order: big endian, and little endian. These terms refer to the order that a multi-byte quantity is stored in memory. To illustrate this, consider how an integer is stored in memory. As an integer consists of 4 bytes, these bytes are assigned to a 4-byte region of memory. However, these bytes can be stored in different ways. Big endian places the most significant byte first, while little endian places the least significant byte first.
Consider the following declaration and initialization of an integer:
int number = 0x01234567;
In the following example, the four bytes of memory are shown using big endian, assuming that the integer has been allocated to address 1000
:
Address |
Byte |
---|---|
1000 |
01 |
1001 |
23 |
1002 |
45 |
1003 |
67 |
The following table shows how the integer will be stored using little endian:
Address |
Byte |
---|---|
1000 |
67 |
1001 |
45 |
1002 |
23 |
1003 |
01 |
The endianness varies by machines in the following ways:
Intel-based processors uses little...