所谓的大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放; 

记忆方法: 地址的增长顺序与值的增长顺序相反 

 所谓的小端模式,是指数据的高位保存在内存的高地址中,而数据的低位保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。

记忆方法: 地址的增长顺序与值的增长顺序相同


判断大小端的方法:

bool IsBig_Endian()
//如果字节序为big-endian,返回true;
//反之为   little-endian,返回false
{
    unsigned short test = 0x1122;
    if(*( (unsigned char*) &test ) == 0x11)
       return TRUE;
else
    return FALSE;

}//IsBig_Endian() 

 

Linux下判断方法:

static union { char c[4]; unsigned long l; } endian_test = { { 'l', '?', '?', 'b' } };
#define ENDIANNESS ((char)endian_test.l)

(如果ENDIANNESS=’l’表示系统为little endian,为’b’表示big endian )。 

  

 

相关文章:

  • 2021-04-25
  • 2021-08-12
猜你喜欢
  • 2022-12-23
  • 2022-03-04
  • 2022-12-23
  • 2021-09-17
  • 2021-10-01
  • 2022-12-23
  • 2021-10-21
相关资源
相似解决方案