字节顺序分为大端字节顺序和小端字节顺序:大端字节是指一个整数的高位字节(23-31bit)存储在内存的低地址,低位字节存储在内存的高地址;小端字节是指整数的高位字节存储在内存的高地址,而地位字节存储在内存的低地址。
一般计算机都是小端字节顺序,网络上都是大端字节顺序。
判断你的机器是否为小端字节顺序:
#include "stdafx.h"
#include <iostream>
using namespace std;
typedef union test{
int nValue;
char cValue[sizeof(int)];
}test;
int _tmain(int argc, _TCHAR* argv[])
{
test t;
t.nValue = 0x01020304;
if (t.cValue[0] == 0x01 && t.cValue[1] == 0x02)
{
cout<<"big endian"<<endl;
}
else
{
cout<<"little endian"<<endl;
}
return 0;
}