大端方式:big-endian 低位数据放在内存高位
小端方式:little-endian 低位数据放在内存低位
#include <iostream>
using namespace std;
void convert(unsigned int* a) {
*a = ((*a & 0Xff000000) >> 24) //异或运算
^ ((*a & 0X00ff0000) >> 8)
^ ((*a & 0X0000ff00) << 8)
^ ((*a & 0X000000ff) << 24);
}
//void convert(unsigned int* a) {
// *a = ((*a & 0Xff000000) >> 24) //或运算
// |((*a & 0X00ff0000) >> 8)
// | ((*a & 0X0000ff00) << 8)
// | ((*a & 0X000000ff) << 24);
//}
int main()
{
int a =1;
cout << &a<<endl;
//---------测试大小端------------
unsigned char* p = (unsigned char*)&a;
if (*p)
cout << "little endian"<<endl;
else
cout << "big endian" << endl;
//---------测试大小端------------
//---------大小端转换------------
convert((unsigned int*)&a);
p = (unsigned char*)&a;
if (*p)
cout << "little endian" << endl;
else
cout << "big endian" << endl;
cout << &a << endl;
}
博主电脑是小端方式
转换之后为