ビッグエンディアンとリトルエンディアンを理解しよう!

ビッグエンディアンとリトルエンディアンを理解しよう!

※ 当サイトは広告を含みます。

コンピュータが複数個のbyteを扱う場合、そのbyteを並べる順番にルールがあります。
これはバイトオーダ(byte order)とも呼ばれていて、大切な知識になります。

エンディアン (endian) の概念

2byte以上から構成される数値を並べる時、そのbyteを最上位から並べるか最下位から並べるかのルールです。
よくメモリにデータを配置する場合を例に説明されてますが、あくまでルールなので、メモリに限った話ではありません。
また、1byteのデータを扱ってる分には関係なく、2byteや4byteなど、複数byteで構成されたデータを扱う場合に影響します。

りさ

正直、全く分かってません。

管理人

例えば10進数で287,484,603があったとして、これは4byteの0x11, 0x22, 0xAA, 0xBBで表現されるよ。
この4byteのデータは1byteごとに配置されるんだけど、その時に0x11から並べるか、0xBBから並べるかだよ。

りさ

普通に上から順番に並べちゃ駄目なんですか?

管理人

元々はCPUがデータを配置する時にどうやったら効率がいいか的なやつだよ。
このルールには2種類あって、それぞれビッグエンディアンリトルエンディアンと呼ばれるんだ。

りさ

違うことの利点ってあるんですか?

管理人

さぁ、価値観の違いでは。正直どっちもどっちだよ。

ビッグエンディアン (big endian)

最上位のbyteから並べる方式です。

ビッグエンディアン

リトルエンディアン (little endian)

最下位のbyteから並べる方式です。

リトルエンディアン

バイエンディアン (bi endian)

あまりにも不毛な争いが続いた結果、ビッグエンディアンとリトルエンディアンの切り替えが可能なCPUが登場してます。
その仕組みはバイエンディアンと呼ばれ、採用してるCPUで最も有名なのはARM系CPUでしょう。

あとがき

メモリにデータを配置する場合はハードウェアで勝手に吸収されるので気にしなくていいです。
対して自身でバイナリデータを作るなど、直接バイナリデータを扱う場合は必須の知識になります。

◆ コンピュータサイエンスに関する学習コンテンツ

この記事は参考になりましたか?

👆このブログを支援する

関連記事

コメント

この記事へのコメントはありません。