16,548
社区成员




BYTE time[4];
time[0]=0x00;
time[1]=0x00;
time[2]=0x00;
time[3]=0x86;
//改成下面这样:
time[0]=0x86;
time[1]=0x00;
time[2]=0x00;
time[3]=0x00;
验证低位先存还是高位先存(小端还是大端),可以用下面的代码验证:
//以下代码是引用https://blog.csdn.net/ninili123456/article/details/53196090
int is_little_endian(void)//判断是否是小端的函数
{
union check_fun
{
int a;
char b;
}u1;
u1.a=1;//先将1(实际上就是0x0001)这个低字节放在存储空间的低位上
return u1.b;//这里实际上是进行了类型的强制装换
}
int main()
{
int i=is_little_endian();
if(i==1)
printf("little\n");//首先因为cpu在对存储数据的读取是从低位向高位读取的,而且在union中所有的成员是对齐读取的,所以如果读取到的b=1,说明char b是存放在低字节的
else
printf("big endian\n");
}
---------------------
作者:尼尼熊孩子
来源:CSDN
原文:https://blog.csdn.net/ninili123456/article/details/53196090
版权声明:本文为博主原创文章,转载请附上博文链接!