Concept:
In big endian, you store the most significant byte in the smallest address.
In little endian, you store the least significant byte in the smallest address.
#include <stdio.h>
#include <stdlib.h>
int main()
{
//32 bit version
unsigned int a = 0xdeadbeef;
unsigned int tmp1 = 0xff000000;
unsigned int tmp2 = 0x00ff0000;
unsigned int tmp3 = 0x0000ff00;
unsigned int tmp4 = 0x000000ff;
unsigned int part1 = (a & tmp4) << 24;
unsigned int part2 = (a & tmp3) << 8;
unsigned int part3 = (a & tmp2) >> 8;
unsigned int part4 = (a & tmp1) >> 24;
a = part1 | part2 | part3 | part4;
printf("%x\n",a);
return 0;
}