目次(まとめ)

  • ◾️ ビッグエンディアンでは、メモリアドレスが小さい方から値を配置

  • ◾️ リトルエンディアンでは、メモリアドレスが大きい方から値を配置

  • ◾️ 関連記事


情報処理試験で「エンディアン」について問われたんだけど、エンディアンとは一体なんですか?

エンディアンとは、メモリに値を配置していく順番の種類です。

今回の記事では、代表的なエンディアンである「ビッグエンディアン」と「リトルエンディアン」について紹介します。

ビッグエンディアンでは、メモリアドレスが小さい方から値を配置

いま、16進数で "ABCD1234" という値が与えられていて、この値をメモリに配置していくことを考えます。

メモリが4バイト(32ビット)であるとすると、1バイト(8ビット)あたり、2つの16進数を配置することができます。

つまり、0.5バイト(4ビット)あたり、1つの16進数を配置できるということです。2進数の "0000" は16進数で "0"、2進数の "1111" は16進数で "F" に対応します。

ここで、メモリのアドレスを小さい方から、"a" "a+1" "a+2" "a+3" と表現すると、ビッグエンディアンでは以下のように値が配置されます。

(a)(a+1)(a+2)(a+3)
ABCD1234

つまり、アドレスが小さい方から順番に並べる、ただそれだけです。

リトルエンディアンでは、メモリアドレスが大きい方から値を配置

ビッグエンディアンは、われわれ人間にとって理解しやすかったですが、コンピュータが理解しやすいとは限りません。

そこで、ビッグの逆の、リトルエンディアンという方式もあります。

先ほどと同じように、16進数で "ABCD1234" という値が与えられていて、この値をメモリに配置していくことを考えます。

メモリのアドレスを小さい方から、"a" "a+1" "a+2" "a+3" と表現すると、以下のように値が配置されます。

(a)(a+1)(a+2)(a+3)
3412CDAB

ビッグエンディアンとは逆に、アドレスが大きい方から値が配置されていきます。

それぞれのアドレス枠の中では、もとの値の順序が維持されるので注意してください。

もし、4バイトのメモリが、2バイトずつの2つに分けられている場合には、それぞれのアドレス枠に4つの16進数を配置できるので、以下のようになります。

(a)(a+1)
1234ABCD

関連記事


今回の記事では、情報処理試験でも問われる「エンディアン」について紹介しました。ビッグだとアドレスが小さい方から、リトルだとアドレスが大きい方から、ということを覚えておきましょう。

B!