大端小端及区别方法

发布时间 2023-07-06 10:39:21作者: await0

理论

大端模式: 数据的低位(就是权值较小的后面那几位)保存在内存的高地址中,而数据的高位,保存在内存的低地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;
小端模式: 数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。

判断方法

方法一
#include <stdio.h>
int main()
  {
    int a = 0x1122;
    printf("%x", *(char*)(&a)); //低地址
  }

如果输出11为大端,如果输出22为小端

方法二
#include <stdio.h>
int main()
  {
    union 
      {
        char b[2];    
        short int a;
      } t;
    t.a = 0x1122;
    printf("%x", t.b[0]);
  }

如果输出11为大端,如果输出22为小端


参考文献:
https://www.cnblogs.com/yunsicai/p/3319808.html