大端小端总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大端小端总结相关的知识,希望对你有一定的参考价值。

大端(Big Endian)和 小端(Little Endian)在开发中经常会遇到的问题,因此在正式开发前,清楚的了解当前的开发环境是大端模式还是小端模式就显得非常重要。

大端:指的是数据的最高有效位(MSB:Most Significant Bit)存储在内存块的低位地址。数据的最低有效位(LSB:Lowest Significant Bit)存储在内存块的高位地址

小端:指的是数据的最高有效位(MSB:Most Significant Bit)存储在内存块的高位地址。数据的最低有效位(LSB:Lowest Significant Bit)存储在内存块的地位地址

如下图所示:

 技术分享

下面通过一段测试代码来进行演示:

#include <stdio.h>

int main()
{
        int n = 0x12345678;
        char* p = (char*)&n;
        printf("%x,%x,%x,%x\\n",p[0],p[1],p[2],p[3]);

        if(p[0] == 0x78 && p[3] == 0x12)
        {
                printf("Little Endian.\\n");
        }
        else if(p[0] == 0x12 && p[3] == 0x78)
        {
                printf("Big Endian.\\n");
        }
        else
        {
                printf("Unkown.\\n");
        }
        return 0;
}

结果输出:

技术分享

表明本机采用的是小端模式。

 

以上是关于大端小端总结的主要内容,如果未能解决你的问题,请参考以下文章

大端存储和小端存储

大端小端是什么?如何区分?

大端小端

flutter大端小端转换

判断计算机是大端还是小端

大端模式和小端模式