1、大小端字节序的理解
1、定义:大小端字节序指的是大于一个字节类型的数据在电脑上存储的字节顺序,大端字节序是把数据的高位字节内容存放到低地址,低位字节内容存放在高地址处,而小端字节序是把数据的低位字节内容存放到低地址,高位字节内容存放在高地址处。
2、小端字节序的存储示意图:
3、大端字节序的存储示意图:
总结:总的来说,小端字节序就是先存入数据的低位字节;而 大端字节序就是先存入数据的高位字节。
2、用代码来判断当前机器是大端还是小端
int check_ses()
{
int n = 1; //n实际上是:00 00 00 01
char* p = (char*) & n; //用p拿到 n 的第一个字节的地址
return *p; //若采用的是小端存储方式 内存里面 n 存储的就是 01 00 00 00,此时的 p 就是 01 的地址;
} //若采用的是大端存储方式 内存里面 n 存储的就是 00 00 00 01,此时的 p 就是 00 的地址
int main()
{
int ret = check_ses();
if (ret == 1)
printf("当前机器是小端存储方式\n");
else
printf("当前机器是大端存储方式\n");
return 0;
}