一.大小端字节序
1.1 超过⼀个字节的数据在内存中存储的时候,就有存储顺序的问题。
按照不同的存储顺序,我们分为大端字节序存储和小端字节序存储,下面是具体的概念:
大小端描述的对象是低位字节 ⼤端(存储)模式:是指数据的低位字节内容保存在内存的高地址处,⽽数据的高位字节内容,保存在内存的低地址处。(低位数——高地址)
小端(存储)模式:是指数据的低位字节内容保存在内存的低地址处,⽽数据的⾼位字节内容,保存在内存的地址⾼处。(低位数——低地址)
编辑
如图所示,44属于低位字节,所以在小端模式中被保存在低地址中,从左到右依次以低地址到高地址的顺序保存33,22,11;而大端模式则正好相反。
例如,一个short型x,被保存在地址为0x0040中,x的值为0x2211,0x22为高字节,0x11为低字节,按照大端或小端模式保存在地址中。
二.编程判断主机字节序
编辑
以上代码中,定义了0x01020304这个十六进制数,其在小尾方式内存中的存储顺序为 04 03 02 01。取 (BYTE)&dwSmallNum 内存中的低地址位的值,如果是小尾方式的话,那么低地址存储的值是0x04;如果是大尾方式的话,则低地址存储的值是0x01