c++ int大小端转换
时间: 2023-12-30 18:06:34 浏览: 121
大小端转换(C++)
5星 · 资源好评率100%
在C++中,可以使用以下方法将整数从大端(Big-Endian)表示转换为小端(Little-Endian)表示,或者从小端(Little-Endian)表示转换为大端(Big-Endian)表示:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
// 将int类型转换为大端表示
int toBigEndian(int x) {
int y;
char *px = (char *)&x;
char *py = (char *)&y;
py[0] = px[3];
py[1] = px[2];
py[2] = px[1];
py[3] = px[0];
return y;
}
// 将int类型转换为小端表示
int toLittleEndian(int x) {
int y;
char *px = (char *)&x;
char *py = (char *)&y;
py[0] = px[0];
py[1] = px[1];
py[2] = px[2];
py[3] = px[3];
return y;
}
int main() {
int x = 0x12345678;
int y;
// 将x从大端转换为小端
y = toLittleEndian(x);
cout << hex << y << endl;
// 将y从小端转换为大端
y = toBigEndian(y);
cout << hex << y << endl;
return 0;
}
```
以上代码中,我们使用了指针的方法将整数类型转换为字符类型,然后进行字节顺序的转换。注意,这种转换方法对于不同机器上的不同编译器可能会有所不同,所以在进行网络传输或者文件读写时,应该使用规范的字节顺序。
阅读全文