码迷,mamicode.com
首页 > 其他好文 > 详细

字节顺序与大小端

时间:2015-03-12 11:04:07      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!