字节序
- 字节序是指多字节数据在计算机内存中存储或者网络传输时各字节的存储顺序。由于数据在内存中存储的顺序与操作系统有关,因此字节在主机中的存储顺序通常称为主机序;而数据在网络中的存储顺序则称为网络序。
大小端
- 大端字节序:高字节存放在低地址,低字节存放在高低址
- 小端字节序:低字节存放在高低址,高字节存放在低地址
如何区分大小端
可以有两种方法,简单记录一下
- 1.用共用体实现
union un{
int a;
char ch;
};
int main(int argc, char **argv){
union un p;
p.a = 0x12345678;
if(p.ch == 0x12)
printf("大端\n");
else if (p.ch == 0x78)
printf("小端\n");
return 0;
}
//输出 小端
- 2.用指针来实现
int main(int argc, char **argv){
int num = 0x40414041;
char *b =(char*)#
printf("%c %c\n",*b,*(b+1));
return 0;
}
//输出结果为 A @
说明机器是以小端方式存储