大小端问题

  • 大端:高字节存放在低地址,低字节存放在高地址。
  • 小端:高字节存放在高地址,低字节存放在低地址。

对于大部分的设备都是小端设备,如果交换数据的两方分别为大端和小端数据,则会存在数据字节的转换问题。

一般网络字节序则为大端传输。

  • 如何判断大小端?
1 int a = 1;
2 char *p = (char *)&a;
3 if(*p == 1)
4     printf("Little endian.\n");
5 else
6     printf("Big endian.\n");

或者

 1 union endian
 2 {
 3     int a;
 4     char b;
 5 } test;
 6 test.a = 1;
 7 if(test.b == 1)
 8     printf("Little endian.\n");
 9 else
10     printf("Big endian.\n");

 

posted @ 2019-03-16 22:56  清风木露  阅读(108)  评论(0)    收藏  举报