小端存储:高位存在高地址上,低位存在低地址上
大端存储:高位存在低地址上,低位存在高地址上
比如:int a = 1;
如果a是大端存储,计算机里存储的是0x00 00 00 01
如果a是小端存储,计算机里存储的是0x01 00 00 00
大端存储方便人,小端存储方便计算机
因为大端存储和阅读的顺序一样
解决方案:
#inclued<stdio.h>
void panduan(int a) {
char* p = (char* )&a;
int d = *p;
if (d == 1) {
printf("小端存储");
}
else {
printf("小端存储");
}
}
int main(){
int a = 1;
panduan(a);
}
说一下思路,为啥这么写:
先定义一个数,就定义成1,因为如果大端存储肯定存的是0x00 00 00 01,而小端存储是0x01 00 00 00。一个int占四个字节,而一个char只需要占一个字节,所以用char型指针保存a的地址,结果一定是从左向右扫描一个字节,但保存的还是起始地址(这里利用了指针的性质),然后再解引用就能得到int型变量a的第一个字节的值,要么是01,要么是00。