Suppose that each unit is 8-bit in the memory, and there exists data 0x1234abcd stored from 0x00000000. Byte orders of Little-endian and Big-endian are as below:
In Little-endian mode, the most significant bits are represented in the highest order bytes, while represented in the lowest order bytes in Big-endian mode. Generally, Intel x86 uses Little-endian, while PowerPC or Motorola uses Big-endian CPU.
There is a simply way to judge which byte order is used in your PC using C++ as below:
#include "stdafx.h"
union {
unsigned short us;
unsigned char uc[2];
}un;
int _tmain(int argc, _TCHAR* argv[])
{
un.us = 0x0001;
if (un.uc[0] == 1)
{
cout << "Little-endian" << endl;
}
else if (un.uc[0] == 0)
{
cout << "Big-endian" << endl;
}
else
{
cout << "Undefined mode" << endl;
}
return 0;
}