1.大小端介绍
超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题,按照不同的存储顺序,分为大端字节序存储和小端字节序存储。
大端(存储)模式:是指数据的低位字节内容保存在内存的高地址处,数据的高位字节内容,保存 在内存的低地址处。
小端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,数据的高位字节内容,保存在内存的高地址处
如下是小端存储示例:
2.对当前机器字节序的判断
(1)常规思路
#include<stdio.h>
int check_sys()
{
int i = 1;
return *((char*) & i);//只返回第一个字节地址所解引用的值
}
int main()
{
int ret = check_sys();
if (ret = 1)
printf("小端");
else
printf("大端");
return 0;
}
(2)利用联合体
#include<stdio.h>
int check_sys()
{
union U
{
int i;
char j;
}u;
u.i = 1;
return u.j;//只返回第一个字节数据
}
int main()
{
int ret = check_sys();
if (ret = 1)
printf("小端");
else
printf("大端");
return 0;
}
关于字节序就介绍到这里,如有疏漏不当之处,欢迎各位大佬斧正。