字节存储的大小端模式

计算机上存储数据分为两种形式:

大端(big endian)——低地址存放高有效字节
小端(little endian)——低地址存放低有效字节
现在主流的CPU:intel系列的是采用的little endian的格式存放数据
注:变量的地址是存储单元的低地址

如数0x12345678
低地址位 高低址位
大端: 12 34 56 78
小端: 78 56 34 12

那么怎样用程式来判断大小端模式呢:

#include 
using namespace std;

int main()
{
    int a = 0x12345678;
    unsigned char* p = (unsigned char*)&a;
    if (*p == 0x78
        && *(p+1) == 0x56) 
    {
        cout << "小端模式" << endl;
    }
    else if (*p == 0x12
             && *(p+1) == 0x34) 
    {
        cout << "大端模式" << endl;
    }
    else
    {
        cout << "神马模式..." << endl;
    }

    return 0;
}

你可能感兴趣的:(C++)