大端模式:数据的低位保存在内存的高地址中,而数据的高位保存在内存的低地址中
小端模式:数据的低位保存在内存的低地址中,而数据的高位保存在内存的高地址中
我们常见的基于x86架构的CPU和很多的ARM、DSP大多是小端模式,不过现在应该比较少需要考虑到大端小端的问题吧,所以就当作是常识了解下,下面这段代码可以测试计算机是大端还是小端模式:
short int x;
char x0, x1;
x = 0x1122;
x0 = ((char *)&x)[0]; //低地址单元
x1 = ((char *)&x)[1]; //高地址单元
// 若x0=0x11,则是大端; 若x0=0x22,则是小端......
printf("x0=0x%x,x1=0x%x
", x0, x1);
一叶渔船两小童,
收篙停棹坐船中。
怪生无雨都张伞,
不是遮头是使风。
-- 杨万里 《舟过安仁》