エンディアンの入れ替え (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

このスライドが付いているレッスンを開く