首先我们来说一下大端小端的概念:大端存储和小端存储是计算机中数据存储的两种不同方式。
在大端存储中,数据的高位字节被存储在内存的低地址处,而数据的低位字节被存储在内存的高地址处。这种存储方式类似于书写方式,先写高位字节,后写低位字节。例如,十六进制数0x12345678在大端存储中被存储为0x12 0x34 0x56 0x78。
在小端存储中,数据的低位字节被存储在内存的低地址处,而数据的高位字节被存储在内存的高地址处。这种存储方式与大端存储相反,类似于阅读方式,先读低位字节,后读高位字节。例如,十六进制数0x12345678在小端存储中被存储为0x78 0x56 0x34 0x12。
接下来我们用代码来实现:
#include<stdio.h>
int check_sys()
{
int a = 1;
char* p = (char*)&a;//这里我们强制类型转换,因为有些编译器在这里可能会报警告
if (*p == 1) //之所以使用char*,是因为char类型只占一个字节,我们只需要知道我们的数据的第一个字节的内容
return 1; //就可以判断是大端存储还是小端存储
else
return 0;
}
int main()
{
int ret = check_sys();
if (ret == 1)
printf("小端\n");
else
printf("大端\n");
return 0;
}
标签:小端,存储,字节,int,char,2015,大端
From: https://blog.51cto.com/u_16143827/6779924