数据存储模式(大端模式和小端模式)
大端模式: 高位字节存放在内存的低地址端,低位字节存放在内存的高地址端,如对于数字1278,其存放如下图所示
大端模式的优点: 符号位在所表示的数据的内存的第一个字节中,便于快速判断数据的正负和大小
小端模式: 高位字节存放在内存的高地址端,低位字节存放在内存的低地址端,如对于数字1278,其存放如下图所示
小端模式的优点:
- 内存的低地址处存放低字节,所以在强制转换数据时不需要调整字节的内容(注解:⽐如把int的4字节强制转换成short的2字节时,就直接把int数据存储的前两个字节给short就⾏,因为其前两个字节刚好就是最低的两个字节,符合转换逻辑);
- CPU做数值运算时从内存中依顺序依次从低位到⾼位取数据进⾏运算,直到最后刷新最⾼位的符号
位,这样的运算⽅式会更⾼效
⼤⼩端的使⽤场景
1、Intel的80×86系列芯⽚使⽤⼩端存储模式
2、ARM芯⽚默认采⽤⼩端,但可以切换为⼤端
3、MIPS芯⽚采⽤⼤端,但可以在⼤⼩端之间切换
4、在⽹络上传输的数据普遍采⽤的都是⼤端
测试自己的机器是大端模式还是小端模式的代码如下:
//测试运行代码的机器存储方式是大端模式还是小端模式
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
int a = 1;
char* pc = (char*)&a;
if (*pc == 1) {
cout << "小端模式" << endl;
} else {
cout << "大端模式" << endl;
};
return 0;
}