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;
}

 

相关文章:

  • 2021-12-26
  • 2022-12-23
  • 2022-01-26
  • 2021-11-26
  • 2021-12-13
  • 2021-12-02
  • 2021-06-18
猜你喜欢
  • 2021-10-14
  • 2022-12-23
  • 2021-08-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-25
  • 2021-07-06
相关资源
相似解决方案