1.什么是大小端?
大小端是数据存储在内存的两种方式。
小端是指数据的低字节存放在内存的低地址,高字节存放在内存的高地址。
大端是指数据的低字节存放在内存的高地址,高字节存放在内存的低地址。
2.如何判断我的电脑是大端模式还是小端模式呢?
可以用联合体来写:
union point {
int a;
char b;
}un;
void judge_big_litter_end()
{
un.a = 1;
if (un.b == 1)
cout << "小端" << endl;
else
cout << "大端" << endl;
}
我们知道联合体有如下特性:
(1) 联合体的所有成员占用同一段内存。
(2)联合体占用的内存等于最长的成员占用的内存。
int un.a=1;
在内存里面就是 0x00 00 00 01
现在再访问un.b
如图,如果是小端模式 un.b=1,;如果是大端模式un.b=0;以此来判断本机是大端模式还是小端模式。