存储模式分为大端模式和小端模式,在X86系统中通常采用小端模式,而在网络传输中的一些协议采用的是大端模式。
大端模式(Big_endian):字数据的高字节存储在低地址中,而数据的低字节存储在高地址中。
小端模式(Little_endian):字数据的高字节存储在高地址中,而数据的低字节存储在低地址中。
程序验证:
#include
/*
*功能:测试机器的存储模式
*一个十六进制的整形0x11223344 从低地址到高地址一次输出每个字节的数据
*/
int main(int argc,char* argv[])
{
int key = 0x11223344;
char* address;
int i = 0;
address = (char*)&key;
//输出为44 33 22 11是小端模式
for(;i<4;++i)
{
printf("%x ",*address++);
}
printf("\n");
return 0;
}
#include
int main(int argc,char* argv[])
{
typedef union
{
int key;
char c;
}Check;
Check c;
c.key = 0x1;
//输出为1
printf("%d\n",c.c);
return 0;
}