C ++ 32位字字节交换

时间:2012-07-09 14:32:04

标签: c++ byte swap endianness

  

可能重复:
  How do I convert between big-endian and little-endian values in C++?

我想知道如何字节交换32位字

我有一个巨大的缓冲区,由于字节顺序,每个字都需要进行字节交换。

2 个答案:

答案 0 :(得分:5)

使用您的操作系统提供的功能(参见Martin Beckett的回答),或者,如果您正在寻找一种感兴趣的方式,您可能会对以下代码段感兴趣:

x = (x & 0x0000FFFF) << 16 | (x & 0xFFFF0000) >> 16;
x = (x & 0x00FF00FF) << 8 | (x & 0xFF00FF00) >> 8;  

答案 1 :(得分:0)

使用您的操作系统提供的htonl / ntohl