How to determine your machine is “Little Endian” or “Big Endian”.
What is big and Little Endian ?
Little and big endian are two ways of storing multibyte data-types ( int, float, etc). In little endian machines, last byte of binary representation of the multibyte data-type is stored first. On the other hand, in big endian machines, first byte of binary representation of the multibyte data-type is stored first.
Is there a quick way to determine endianness of your machine?
There are n no. of ways for determining endianness of your machine. Here is one quick way of doing the same.
#include <stdio.h>
int
main()
{
unsigned
int
i = 1;
char
*c = (
char
*)&i;
if
(*c)
printf
(
"Little endian"
);
else
printf
(
"Big endian"
);
getchar
();
return
0;
}
In the above program, a character pointer c is pointing to an integer i. Since size of character is 1 byte when the character pointer is de-referenced it will contain only first byte of integer. If machine is little endian then *c will be 1 (because last byte is stored first) and if machine is big endian then *c will be 0.