JoeChenzzz

导航

大端小端及检测方法

1.大端

  一个数的最高有效位排在地址值小的地址上,最低有效位排在地址值大的地址上

2.小端

  一个数的最低有效位排在地址值小的地址上,最高有效位排在地址值大的地址上

一个32位int数的十六进制值为0x01234567(最高有效位——最低有效位),位于地址0x100~0x103(每个地址单元一般容量为1字节):

3.常见的大端小端应用场景

1)常用的X86结构的主机使用小端法

2)TCP/IP协议栈使用大端法

4.大端小端的检测方法

1)单独取出变量的低8位地址来验证

int main()
{
    int i = 1;
    char c = *((char*)&i);//取i的地址的低8位的所存储的值赋给c

    if (c==1)
        printf("小端\n");
    else
        printf("大端\n");

    return 0;
}

2)利用联合体几个不同的变量共占用一段内存的性质

union UN
{
    char c;
    int i;
};

int main()
{
    UN un;
    un.i = 1;
    
    if (un.c==1)
        printf("小端\n");
    else
        printf("大端\n");

    return 0;
}

 

posted on 2018-10-16 10:15  JoeChenzzz  阅读(1147)  评论(0编辑  收藏  举报