字节序包括高字节序和低字节序,那么什么是高字节序呢?什么又是低字节序呢?
例如:0x01020304;
低字节-------1----------2------------3------------4---->高字节
-------------01--------02-----------03-----------04---------------
高字节序就是:
低地址--------------------------------------------->高地址
-------01------ 02 --------03 ---------04
低字节序就是:
低地址------------------------------------------>高地址
---------04--------03--------------02-------------01-------
通常我们见到的字节序有如下:
主机字节序
网络字节序
JAVA字节序
其中网络字节序和JAVA字节序都是高字节序,至于主机需要根据实际情况而定,可以进行测试
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
union UA{
unsigned short a;
unsigned char b[2];
} ub;
ub.a=0x0102;
printf("%d,%d,%x,%x",ub.b[0],ub.b[1],&ub.b[0],&ub.b[1]);
system("PAUSE");
return 0;
}
输出1,2就是高字节序;2,1就是低字节序