大端小端什么意思?
我们都知道在计算机中是以二进制的方式存储数据的,对于整形来说:数据存放内存中其实存放的是补码。
举个栗子:
int a = 7;
int b = 1;
这两个变量在内存中是这样存放的
数据存储顺序和我们想象的不太一样,这就是大端小端存储模式的原因。
先定义a,后定义b。
而内存中a和b地址有两种可能,
一种是a的地址小于b的地址,即变量地址按照内存顺序存放,由低位到高位。
还有一种是a的地址大于b的地址,低位地址存储在高位。
大端:低位数据存放到高位地址,高位数据存放到低位地址
小端:低位数据存放到低位地址,高位数据存放到高位地址
举例:存储1
代码举例:
#include<stdio.h>
int check() {
int a = 1;
char *p = (char*)&a;
if (*p == 1)
return 1;
else
return 0;
}
int main() {
if (check() == 1)
printf("小端\n");
else
{
printf("大端\n");
}
return 0;
}
参考:https://blog.csdn.net/abc_xixi111/article/details/79934229