Litter endian/Big endian
little endian 低字节存放在内存地址的低位, 高字节存放在地址高位
big endian 低字节存放在内存地址的高位, 高字节存放在地址低位
以下是判断字节存储顺序的可移植的C语言代码:
/********************************************************************
created:
2006-9-5
filename: test.cpp
author: 李创
purpose: 可移植的用于判断存储格式是
little endian还是big ednian的C代码
取自<<C: A Reference Manual>>
*********************************************************************/
#include <stdio.h>
union
{
long Long;
char Char[sizeof(long)];
}u;
int main()
{
u.Long = 1;
if (u.Char[0] == 1)
{
printf("Little Endian!/n");
}
else if (u.Char[sizeof(long) - 1] == 1)
{
printf("Big Endian!/n");
}
else
{
printf("Unknown Addressing!/n");
}
printf("Now, Let's look at every byte in the memory!/n");
for (int i = 0; i < sizeof(long); ++i)
{
printf("[%x] = %x/n", &u.Char, u.Char);
}
return 0;
}