0

重複の可能性:
C++ でビッグ エンディアン値とリトル エンディアン値を変換するにはどうすればよいですか?

32ビットワードをどのようにバイトスワップするのだろうと思っていました

私はこれらの単語の巨大なバッファを持っており、エンディアンのためにそれぞれの単語をバイトスワッピングする必要があります。

4

2 に答える 2

6

OS が提供する関数を使用するか (Martin Beckett の回答を参照)、または、関心がないのでこれを行う方法を探している場合は、次のコード スニペットに興味があるかもしれません。

x = (x & 0x0000FFFF) << 16 | (x & 0xFFFF0000) >> 16;
x = (x & 0x00FF00FF) << 8 | (x & 0xFF00FF00) >> 8;  
于 2012-07-09T14:37:53.293 に答える
0

OS が提供するhtonl / ntohlを使用する

于 2012-07-09T14:34:30.140 に答える