エンディアン(ビッグエンディアン・リトルエンディアン)とは?えんでぃあん
エンディアン(ビッグエンディアン・リトルエンディアン)とは、2バイト以上のデータを主記憶へ置くとき、どのバイトを小さい番地へ置くかの取決め。ビッグエンディアンは最上位バイトを小さい番地に置き、16進表記の並びとメモリダンプの並びが一致する。リトルエンディアンは最下位バイトを小さい番地に置く。方式の違う機器間でバイナリを授受するときは変換が要る。
最終更新:2026-10-06
この語が出る過去問を解く →背景
バイト単位で番地が付く主記憶に複数バイトの数値を置く順序は、原理的にどちらでも成立する。標準が決まる前に各社のアーキテクチャが別々の選択をし、リトル側は下位バイトから演算器へ流せることと幅の違う型を同じ番地で扱えることを、ビッグ側は人が読む順序との一致を取った。どちらにも理由があったため統一されず、変換が要る状態が今も残っている。
具体例
1000番地に00、1001番地に01が入った状態を16ビットとして読むと、ビッグエンディアンでは0x0001、リトルエンディアンでは0x0100になる。TCP/IPのヘッダはビッグエンディアン(ネットワークバイトオーダ)と定められているため、x86やArmのリトルエンディアン機は htons や ntohs で並べ替えてから送受信する。
試験での引っ掛け
入れ替わるのはバイトの並びであって、バイト内のビットの並びではない。差が出るのは多バイトの型としてまとめて読み書きするときだけで、1バイトずつ扱うならどちらでも結果は同じ。またArmやRISC-Vのように動作中に切り替えられる実装があり、命令セットを見れば一意に決まると覚えると外す。
関連用語
出た過去問
出典:令和5年度 秋期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問4(IPA)解説で登場
ビッグエンディアン方式を採用しているCPUが、表のようにデータが格納された主記憶の1000番地から2バイトのデータを、16ビット長のレジスタにロードしたとき、レ…
正解:0001
要点:ビッグエンディアンは上位バイトを小さい番地に置く
ビッグエンディアンでは、多バイトデータの最上位バイトを最も小さい番地に置く。1000番地から2バイトを読み出すと、1000番地の00が上位バイト、1001番地の01が下位バイトになるので、レジスタの値は0001となる。リトルエンディアンであれば0100となる点が対比になる。
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの2 コンピュータシステム > 2. メモリ > (3) メモリシステムの構成と記憶階層に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。