判断机器是大端模式还是小端模式

大端是高位字节先存储(低地址)
小端是低位字节先存储(低地址)
网络字节序是大端的,也就是高位字节先传输
而int--char的强制转换,是将低地址的数值截断赋给char,利用这个准则可以判断系统是大端序还是小端序

#include 
using namespace std;
int main()
{
    int a = 0x1234;
    char c = static_cast(a);
    if (c == 0x12)
        cout << "big endian" << endl;
    else if(c == 0x34)
        cout << "little endian" << endl;
}

endian中的ch对应整个endian的低地址段,若这一段内容等于0x34,即等于整数0x1234中的低位字节,说明低位字节先存储,说明是小端序。反之若ch=0x12说明高位字节先存储,说明是大端序。

你可能感兴趣的:(判断机器是大端模式还是小端模式)