Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1347146
  • 博文数量: 244
  • 博客积分: 10311
  • 博客等级: 上将
  • 技术积分: 3341
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-14 21:50
文章分类

全部博文(244)

文章存档

2013年(6)

2012年(5)

2011年(16)

2010年(11)

2009年(172)

2008年(34)

分类: LINUX

2010-04-12 09:46:19

CPU采用的是大端模式还是小端模式,直接影响数据在内存空间的存储顺序。大端模式(Big-endian)时高字节优先存储。小端模式(Little-Endian)时低字节优先存储。(注:网络通信中的网络字节顺序(NBO)采用的是高字节优先即大端模式)
如将0x123456abcdef:
  地址      Big-endian     Little-Endian
  0x0000      0x12            0xef                
  0x0001      0x34            0xcd                
  0x0002      0x56            0xab                  
  0x0003      0xab            0x56                
  0x0004      0xcd            0x34
  0x0005      0xef            0x12                                                
  
判断CPU运行模式的函数:
int checkCPU(void)
{
    {
           union w
           { 
                  int a;
                  char b;
           } c;
           c.a = 1;
           return(c.b ==1);
    }
}
由于联合体中是在字节顺序存储的,c.a的值即为0x01                                        
返回‘0’时即为大端模式,返回‘1’时即为小端模式。                                         
                                                               
 
                                         
阅读(1456) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~