大小端字节序定义
大端字节序存储:
把一个数据的低位字节的数据,存放在高地址处,把高位字节的数据,存放在低地址处
小端字节序存储:
把一个数据的低位字节的数据,存放在低地址处,把高位字节的数据,存放在高地址处
大小端没有优劣,我们常见的x86结构和x64结构都是小端
判断大小端
例1:
通过调试来判断
变量a里存储的是1,十六进制表示就是
00 00 00 01
右边地址0x00A8FD94
存储的是a,可以看到地址上边是比下边小的,所以上面是低地址处,下面是高地址处
而01是低位字节的数据,存放在了低地址处,所以得出我用的x86结构是小端字节序存储。
例2:
通过写代码判断
int check_sys(){
int a = 1;
return *(char*)&a;
}
int main(){
if(check_sys() == 1){
printf("小端\n");
}else{
printf("大端\n");
}
return 0;
}
结果: