通过一句话记住大端序和小端序的区别
在软件开发过程中,软件开发人员都知道大端序和小端序的概念,但是在真正使用的时候,傻傻分不清两种到底是怎么存储。
首先还是先看下基本概念:
1、大端模式:高字节保存在内存的低地址
2、小端模式:高字节保存在内存的高地址
我比较喜欢这么记忆
小端模式:低字节在低地址
大端模式:高字节在大地址
例子:
举例:
var = 0x11223344,对于这个变量的最高字节为0x11,最低字节为0x44
(1)大端模式存储(存储地址为16位)
地址 数据
0x0004(高地址) 0x44
0x0003 0x33
0x0002 0x22
0x0001(低地址) 0x11
(2)小端模式存储(存储地址为16位)
地址 数据
0x0004(高地址) 0x11
0x0003 0x22
0x0002 0x33
0x0001(低地址) 0x44
测试电脑cpu是大端还是小端
int nNum = 0x12345678;//78占一个字节 (一个字节等于8bit)
char chData = *(char*)(&nNum);//低地址
if (chData == 0x78)//低字节放在低位 ---》小端
{
cout << "small" << endl;
}
else
{
cout << "big" << endl;
}
system("PAUSE");
我的电脑运行结果
small
和我在内存中看到的一致(低字节在低地址)