逐步加深对字节操作的理解,记录一下大端字节序与小端字节序的转换,开发环境是vs2010,项目类型是控制台输出程序,下面是代码实现:
#include "stdafx.h"
#include <iostream>
using namespace std;
void JdugeByteOrder(int &a)
{
unsigned char *p = (unsigned char *)&a;
for(int i = 0; i < sizeof(int);i++)
{
int b = *(p+i);
cout<<hex<<b<<"\t";
}
cout<<endl;
}
void ExchangeByteOrder(int *pData,int nSize)
{
unsigned char *p = (unsigned char *)pData;
unsigned char temp = 0;
for(int i = 0; i < nSize/2 ; i++)
{
temp = p[i];
p[i] = p[nSize - 1 - i];
p[nSize - 1 - i] = temp;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int a = 0x12345678;
JdugeByteOrder(a);
ExchangeByteOrder(&a,sizeof(a));
JdugeByteOrder(a);
system("pause");
return 0;
}
运行结果:
由运行结果看出,原来的小端字节序转换为大端字节序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)