1.大端和小端的介绍:
大端字节序:把数据的低位字节序的内容放在高地址处,高位字节序的内容放在低地址处
小端字节序:把数据的低位字节序的内容放在低地址处,高位字节序的内容放在高地址处
eg:0x11223344:0x11为高位字节序 0x44为低位字节序;
大端字节序:11 22 33 44
---低地址--------高地址---------
小端字节序:44 33 22 11
-------------低地址--------高地址-------
2.代码实现
int main()
{
int a = 1;
char* p = (char*)&a;
if (*p == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
那么根据以上介绍可以看出,只要判断最初的低地址处的所存储的数字是什么即可判断出是大端字节序还是小端字节序;
而要想在四个字节的内容中只提取出一个字节,我们想到利用char*类型的指针,因为对char类型的指针解引用就是访问一个字节;
那么对于以上代码来说:int a=1;00000001;只要判断第一个放置的是否为1,即可知道是大端存储还是小端存储;