实际上,大小端指的是数据在内存中的储存模式
大端系统:数据的低位字节序的内容放在高地址处,而高位字节序的内容放在低地址处。
小段系统:数据的低位字节序的内容放在低地址处,而高位字节序的内容放在高地址处。
例如存储 int a = 1
如果是大端系统,则如下图所示:

反之小端系统如下:

实际上,我们只需要判断地位地址是否为1,如果是大端系统时,低位存储的是00,反之01
方法一:查看低位地址的值是否为1,这里需要将数值强制转换为char类型的指针
int judgeSys()
{
int a = 1;
char *p = (char*)&a;
if(1 == *p)
return 1; //判断为大端系统
else
return 0; //判断为小端系统
}
方法二:利用构造union的方法,a和b一共用了4个字节的内存,如图:

如果是大端系统,修改 i 的值后,c的值不会被修改,反之则会改变。代码如下:
int judgeSys()
{
union sys
{
char a;
int b;
}
union sys test;
test.b = 1
return test.a
}
博客介绍了大小端系统的概念,大端系统将数据低位字节序内容放高地址,高位放低地址;小端系统相反。还给出判断大小端系统的方法,一是查看低位地址值是否为1,需将数值强制转换为char类型指针;二是利用构造union的方法。
1239

被折叠的 条评论
为什么被折叠?



