Skip to content

Instantly share code, notes, and snippets.

@Amirhb
Last active April 5, 2023 13:03
Show Gist options
  • Save Amirhb/a74a7678e5294073ae1df7dcdcecbc27 to your computer and use it in GitHub Desktop.
Save Amirhb/a74a7678e5294073ae1df7dcdcecbc27 to your computer and use it in GitHub Desktop.
Understanding Endianness

Understanding Endianness in Computer Memory

Endianness refers to the way in which bytes are ordered in computer memory. It is essential to understand endianness when working with computer memory and saving or fetching numbers in it. There are two types of endianness: big-endian and little-endian.

Big-Endian

In big-endian, the most significant byte (MSB) is stored at the lowest memory address, while the least significant byte (LSB) is stored at the highest memory address. This means that if we have a 4-byte integer 0x12345678, it will be stored in memory as follows:

Address Value
0x1000 0x12
0x1001 0x34
0x1002 0x56
0x1003 0x78

Little-Endian

In little-endian, the least significant byte (LSB) is stored at the lowest memory address, while the most significant byte (MSB) is stored at the highest memory address. This means that if we have the same 4-byte integer 0x12345678, it will be stored in memory as follows:

Address Value
0x1000 0x78
0x1001 0x56
0x1002 0x34
0x1003 0x12

Example

Let's say we want to store the integer 0x12345678 in two bytes of memory. If we store the most significant byte first, we get 0x1234, while if we store the least significant byte first, we get 0x5678.

If we want to retrieve the original integer from the two bytes, we need to know the endianness. If the endianness is big-endian, we need to shift the first byte by 8 bits and add it to the second byte. If the endianness is little-endian, we need to shift the second byte by 8 bits and add it to the first byte.

Conclusion

Endianness is an important concept to understand when working with computer memory and saving or fetching numbers in it. Knowing the endianness of a system is crucial to ensure that data is stored and retrieved correctly. It is also essential to understand how to convert data between different endianness formats.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment