ビッグエンディアンとリトルエンディアンの違いとは
今回はビッグエンディアンとリトルエンディアンについて説明していきます。
エンディアンとは
ビッグエンディアンとリトルエンディアンの説明に入る前に、まずはエンディアンの説明からやりましょう。
そもそもエンディアンとは何でしょうか?
コンピュータはプログラムを動かすときに、データを1バイト(8ビット)単位で扱います。
この時に、1バイトを超えるデータを取り扱う場合に、どのようにしてメモリに配置していくか、という問題が発生しました。
そして生まれたのが、ビッグエンディアンとリトルエンディアンと呼ばれる2つの方式です。
ビッグエンディアンとリトルエンディアン
ビッグエンディアンとリトルエンディアンの違いは、バイトの順序(バイトオーダ)を最上位からにするのか、それとも最下位からにするのか、です。
ビッグエンディアン
ビッグエンディアンでは、バイトオーダの最上位からデータを取り扱います。
例えば、「1234」という16進数のデータがあったとしましょう。
この場合、最上位からデータを取り扱うので、メモリ上への配置は
「12」「34」
という風になります。
リトルエンディアン方式を採用している代表的なものにはIBM社のメインフレーム、JAVA仮想マシン、通信プロトコルではおなじみのTCP/IPがあります。
リトルエンディアン
リトルエンディアンではビッグエンディアンとは対照的に最下部のビットからデータを取り扱います。
先の例のように「1234」という16進数のデータで考えてみましょう。
この例の場合、メモリ上への配置は
「34」「12」
という順になります。