Monday, February 6, 2012

What is the difference between big endian and little endian ?

        endian or endianness refers to the ordering of individually addressable sub-components within the representation of a larger data item as stored in external memory. The most common cases refer to how bytes are ordered within a single 16-, 32-, or 64-bit word, and endianness is then the same as byte order. The usual contrast is whether the most significant or least significant byte is ordered first.

Consider a memory location occupied by an Integer variable of 4-bytes:


Little Endian : In this the lower-order byte of the number is stored in memory at the lowest address, and the high-order byte at the highest address. For example, a 4 byte Integer

will be arranged in memory as follows:

Base Address+0 -> Byte0
Base Address+1 -> Byte1
Base Address+2 -> Byte2
Base Address+3 -> Byte3

Example: Intel processors (those used in PC's) use "Little Endian" byte order.

Big Endian: In this the high-order byte of the number is stored in memory at the lowest address, and the low-order byte at the highest address. The same 4 byte integer would be stored as:

Base Address+0 -> Byte3
Base Address+1 -> Byte2
Base Address+2 -> Byte1
Base Address+3 -> Byte0

Example: Motorola processors (those used in Mac's) use "Big Endian" byte order.