エンディアンの入れ替え (uint32)
コンピューターサイエンス理論 / 全 5 枚
コンピューターサイエンス理論 - エンディアンの入れ替え (uint32)
同じ 4 バイトを逆から読む
32 ビットの数は 4 バイトに分かれて番地に並びます。どちらの端から並べるかが機械によって違うので、受け渡しのときに並べ直しが要ります。
並べ直しの前に、そもそも値が番地のどこに置かれているのかを見ておきます。
1 バイトは 8 ビットなので、動かす量は必ず 8 の倍数です。最後の >>> 0 は符号なしに戻すためのおまじないです。
function swap32(n) {
return (
((n >>> 24) & 0xff) |
((n >>> 8) & 0xff00) |
((n << 8) & 0xff0000) |
((n << 24) >>> 0)
) >>> 0;
}1 / 5
← → キーでも送れます