提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、什么是大端(小端)存储?
(1)大端存储:数据的高字节放在内存的底地址处,低字节放在高地址处;
(2)小端存储:数据的高字节放在内存的高地址处,低字节放在低地址处。
二、具体实现方法
#include <stdio.h>
//封装check_sys函数判断计算机的大小端
int check_sys1() //方法一
{
int a = 1 ;// 1的二进制转化成十六进制在内存中存
// 储为 0x 00 00 00 01
char* p = (char* a)&a;
if( *p == 1)
return 1 ;//返回1表示为小端存储
else
return 0 ;//返回0表示大端存储
)
int check_sys2()
{
int a = 1 ;
return *((char*p)&a);
}
1.实现原理:
我们利用1在内存中的存储为 0x 00 00 00 01(十六进制),
所以我们每次读取出一个字节的数据时,要么是1,要么是0。而我们又知道计算机在读取数据是是从低地址向高地址开始读取的,所以我们读出的0或1就是最低地址上的数据,从而进行判断。
int main()
{
int ret = check_sys1();
if(ret==1)
printf("大端存储\n");
else
printf("小端存储\n");
}
return 0 ;