高地址:数据存储是有一定编号的,编号大的地方是高地址
低地址:数据存储是有一定编号的,编号小的地方是低地址
例如:1237535265456
数据的高位:类比生活中的数字,越前的越高,比如上一行的123就是高位
数据的低位:类比生活中的数字,越靠后的越低,数据的末位,即456
大端(big endian):数据的高位放在低地址空间,数据的低位放在高地址空间。手机是大端
小端(little endian):地位对应低地址,高位对应高地址。电脑是小端
一般操作系统都是小端的,通讯协议都是大端的。
读取数据一定一定是从低地址读起!有区别的是读取数据后所放位置不同,高地址开始读取的数据放在高位,低地址读取的数据放在高位
判断:
bool islittle()
{
typedef union A
{
char a;
short b;
}A;
A ua;
ua.a = 1;
return ua.a ;
}
int main()
{
if (islittle())
{
printf("小端");
}
else
{
printf("大端");
}
return 0;
}
- 优点:
- 大端模式:符号位的判定固定为第一个字节,
容易判断正负
。 - 小端模式:强制转换数据
不需要调整字节
内容。