Endian test | ||||||||||||||
main () | big-endian | little-endian | ||||||||||||
{ | Address | Contents | ||||||||||||
int i = 0x1234abcd, n; | 1000 | 12 | cd | |||||||||||
unsigned char * byte = (unsigned char *) &i; | 1001 | 34 | ab | |||||||||||
1002 | ab | 34 | ||||||||||||
for (n = 0; n < 4; n++) | 1003 | cd | 12 | |||||||||||
printf ("%x ", *(byte + n)); | 1004 | |||||||||||||
1005 | ||||||||||||||
return 0; | 1006 | |||||||||||||
} | 1007 | |||||||||||||
Why unsigned char? | ||||||||||||||
Output (IBM PC): | ||||||||||||||
cd ab 34 12 | ||||||||||||||
Output (Sun): | ||||||||||||||
12 34 ab cd | ||||||||||||||