我们知道关于字节序有大端和小端之分。一般来说,Inter的处理器使用的是小端(little Indian),Moto的处理器使用的是大端。大端和小端的区别在于,内存对于变量的存放规则不同。小端存储模式是低位放在低地址,高位存放在高地址。而大端则相反。
简单示例如下:
a=0x11223344;
低 高
地址由低到高————————————————————>
小端字节序 44 33 22 11
大端字节序 11 22 33 44
那么为了判断存储方式属于大端还是小端存储,我们给出如下代码:
#include<stdio.h>
#include<stdlib.h>
int check_sys()
{
int a = 0x11223344;
char *p = (char *)&a;
if (*p == 0x11)
{
return 1;
}
if (*p == 0x44)
{
return 2;
}
}
int main()
{
int ret = check_sys();
if (ret == 1)
printf("Big\n");
if (ret == 2)
printf("little\n");
system("pause");
return 0;
}
时间: 2024-11-20 20:56:12