根据处理器的不同,字节序分为大端和小端。
所谓大端,就是高字节的数据存放在低地址的内存地址,低字节的数据存放在高地址的内存地址。
所谓小端,就是高字节的数据存放在高地址的内存地址,低字节的数据存放在低地址的内存地址。
大端如图示例:
小端如图示例:
如何写一个C语言程序识别目前机器是大端还是小端?
#include <stdio.h>
union ut
{
short s;
char c[2];
} u;
// char 1;short 2; int,float,long 4; double 8
int main()
{
if(sizeof(short) == 2)
{
u.s = 0x0102;
if(u.c[0] == 0x1 && u.c[1] == 0x2)
{
printf("big enidan\n");
}
else if(u.c[0] == 0x2 && u.c[1] == 0x1)
{
printf("little endian.\n");
}
}
return 0;
}