字节序
一、字节序分为大端字节序和小端字节序
高低字节:例如0x12345678,左边字节为高字节,右边字节为低字节,0x12为高字节,0x78为低字节
大端字节序:高字节存储在起始地址(网络字节序)
小段字节序:低字节存储在起始地址(计算机内部处理)
图例:
除了计算机内部处理通常情况下几乎都是大端字节序
二、检测方法
检测方法有很多移位、类型强转、位与运算、枚举、共用体等等前三可能会因为编译器内部处理导致误判
下面演示共用体检测大小端
#include <stdio.h>
union check
{
int a;
char b;
};
int main()
{
union check size;
size.a = 1;
if (size.b == 1){
printf("mode is small\n");
} else if (size.b == 0){
printf("mode is big\n");
}
return 0;
}
运行结果
mode is small