标签:
1.概念:
1)小端:操作数的存放方式是高地址存放高字节。
0x1234,存放地址为0x2000
内存地址 存放内容
0x2000 0x34
0x2001 0x12
2)大端:操作数的存放方式是高地址存放低字节。
0x1234,存放地址为0x2000
内存地址 存放内容
0x2000 0x12
0x2001 0x34
x86平台采用的是小端模式,网络字节顺序是大端模式。
2.检测系统大小端
1)调用库检测
1 #include<endian.h> 2 #include<stdio.h> 3 int main() 4 { 5 printf ("big_endian:%d\nlittle_endian:%d\nmine_endian:%d\n",__BIG_ENDIAN,__LITTLE_ENDIAN,__BYTE_ORDER); 6 return 0; 7 }
2)共用体检测:共用体字节存放顺序是所有成员都从低地址开始申请内存空间。
1 #include<stdio.h> 2 #include<stdlib.h> 3 union word 4 { 5 int a ; 6 char b; 7 }c; 8 int checkCPU(void) 9 { 10 c.a=1; 11 return (c.b==1); 12 } 13 14 int main() 15 { 16 int i; 17 i=checkCPU(); 18 if(i==0) 19 printf("Big endian.\n"); 20 else if(i==1) 21 printf("Little endian.\n"); 22 return 0; 23 }
标签:
原文地址:http://www.cnblogs.com/xp12/p/4331705.html