1. 程式人生 > >大端小端總結

大端小端總結

== lowest %x main lsb logs 2-2 小端 技術分享

大端(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; }

結果輸出:

技術分享

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

大端小端總結