最近遇上好几次关于大端序、小端序的问题,记混了,想了好半天,得亏写对了 。今天总结一下,希望记住了。
大端序:数据的高位保存在内存的低地址中,而数据的低位,保存在内存的高地址中
小端序:数据的高位保存在内存的高地址中,而数据的低位,保存在内存的低地址中
测试编译器是大端序还是小端序的代码:
#include <iostream>
using namespace std;
int main(void)
{
int a = 0x12345678;
char *p=(char *)&a;//指针是指向低地址的
if(0x78==*p)
{
cout<<"little endian"<<endl;
}
else
{
cout<<"big endian"<<endl;
}
return 0;
}