#include <stdio.h>
unsigned __int64 toLittleEndian(unsigned __int64 value) {
return ((value >> 56) & 0x00000000000000FFULL) |
((value >> 40) & 0x000000000000FF00ULL) |
((value >> 24) & 0x0000000000FF0000ULL) |
((value >> 8) & 0x00000000FF000000ULL) |
((value << 8) & 0x000000FF00000000ULL) |
((value << 24) & 0x0000FF0000000000ULL) |
((value << 40) & 0x00FF000000000000ULL) |
((value << 56) & 0xFF00000000000000ULL);
}
int main(void)
{
// 64 bit
unsigned __int64 n = 0x8877665544332211;
printf("0x%llX\n", n);
n = toLittleEndian(n);
printf("0x%llX\n", n);
}
/*
0x8877665544332211
0x1122334455667788
*/