Endianness definition
Endianness is the order in which a computer system stores and transmits multi-byte data in memory. There are two main types of endianness: big-endian and little-endian.
Endianness stops different devices from interpreting the same binary sequence in different ways. Networking protocols, file formats, and other inter-system communication interfaces often explicitly define byte order conventions to avoid confusion.
See also: communication protocol, protocol conversion, computer architecture
Big endian vs little endian
In a big-endian system, the most significant byte is stored at the lowest memory address while the least significant byte is stored at the highest. Bytes are stored from left to right in memory, with the left-most byte containing the most significant part of the data.
Little-endian is the opposite of big-endian — in a little-endian system, the least significant byte is stored at the lowest memory address while the most significant byte is stored at the highest. This means that the bytes are stored from right to left, with the right-most byte containing the least significant part of the data.
Neither system offers a particular advantage of the other, with different computer architectures using different endianness as a matter of convention. For example, x86 and x86-64 use little-endian while PowerPC and SPARC use big-endian.