大小端 Big-Endian Little-Endian

大端模式,是指数据的高位,保存在内存的低地址中,而数据的低位,保存在内存的高地址中。小端模式则刚好相反。


0003.png


举例:比如你要将一个数据0xABCD存放到内存中,我们假设内存起始地址是0x00

大端模式存储时,0xAB会存放在0x00地址中,0xCD会存放在0x01地址中

小端模式存储时,0xAB会存放在0x01地址中,0xCD会存放在0x00地址中


我们常见的51单片机一般都是大端模式,而X86(电脑)、很多ARM、DSP都是小端模式。

很多ARM还可以通过寄存器自由设置工作在大端还是小端模式


下面的函数可以用来判断系统是什么模式



unsigned char IsBigEndian(void)
{
     unsigned short test = 0xABCD;
     if(*( (unsigned char*) &test ) == 0xAB)
     {
         return 1;//是大端模式
     }
     else
     {
        return 0;//是小端模式
     }
}
标签:C/MCU

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://evelee.net/blog/?id=3