Identify machine is little or big endian
int a = 0x01346283; This is 32 bit machine. int data type is 4 byte in memory it is allocated as below in little endian 1001 1002 1003 1004 83 62 34 01 in big endian 1001 1002 1003 1004 01 34 62 83 int main() { int a = 1; char *b = (char *)&a; if(*b) then its little endian } To convert one endian to other, write macro which does left shift each byte and OR it for ex: int x = 0x12345678 from little endian to big endian 78 << 0 | 56 << 8 | 34 << 16 | 12 << 24 from big endian to little endina 12 << 0 | 34 << 8 | 56 << 16 | 78 << 24