エンディアン
データの並び順だよ
最初から並べる「ビッグエンディアン」と最後から並べる「リトルエンディアン」があるよ
簡単に書くよ
エンディアン(英:endian)とは
2バイト以上のデータをメモリ上に展開したり、どこかに送る際の「バイト単位で見たときのデータの並び順」のこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「ビット」と「バイト」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
ビットは、コンピュータさんの世界における「0か1が入る箱」です。
あるいは、この「0か1が入る箱」の数を表す単位です。
例えば「4ビット」であれば「0か1が入る箱が4つあるよ」の意味になります。
バイトは「ビットが8つ集まったもの」です。
0か1が入る箱(ビット)が8つ入るくらいの大きな箱がバイトだと思ってください。
あるいは、このデカい箱の数を表す単位がバイトです。
「2バイト」であれば「ビットが8つ入る大きさの箱が2つあるよ」の意味になります。
……というのが基本ですけどね。
こだわり派の人がいるかもしれないので補足しておきます。
実は必ずしも1バイトが8ビットとは限りません。
環境によっては「1バイト=7ビット」のときもあれば「1バイト=9ビット」の場合も あります。
ただし、一般的には
1バイト=8ビット
です。
それ以外は例外と捉えて、あまり気にしないでください。
以上を踏まえて
データをバイト単位で見たときの「最初からデータを並べるか」「最後からデータを並べるか」
が「エンディアン」です。
例えば、そうですね。
4バイトのデータ
00000001 00000010 00000100 00001000
があったとします。
このデータを(例えばメモリ上に)置く場合、普通に並べたら
1つめ:00000001(1バイト目)
2つめ:00000010(2バイト目)
3つめ:00000100(3バイト目)
4つめ:00001000(4バイト目)
になりますよね?
ところが、世の中には逆から
1つめ:00001000(4バイト目)
2つめ:00000100(3バイト目)
3つめ:00000010(2バイト目)
4つめ:00000001(1バイト目)
の順番で並べて置くやり方もあるのです。
この「最初から並べるの?最後から並べるの?」が「エンディアン」です。
データを送るときも同じですね。
1回目に送るデータ:00000001(1バイト目)
2回目に送るデータ:00000010(2バイト目)
3回目に送るデータ:00000100(3バイト目)
4回目に送るデータ:00001000(4バイト目)
のように最初から順番に送るやり方もあれば
1回目に送るデータ:00001000(4バイト目)
2回目に送るデータ:00000100(3バイト目)
3回目に送るデータ:00000010(2バイト目)
4回目に送るデータ:00000001(1バイト目)
のように最後から送るやり方もあります。
そのときの「最初から並べるの?最後から並べるの?」が「エンディアン」です。
なお「1バイト目→2バイト目→3バイト目」のように先頭から並べる並べ方を「ビッグエンディアン」と言います。
「3バイト目→2バイト目→1バイト目」のように後ろから並べる並べ方は「リトルエンディアン」です。
気が向いたら、全部まとめて覚えてあげてください。
エンディアン:データを並べる順番
ビッグエンディアン:最初のやつから並べるやり方
リトルエンディアン:最後のやつから並べるやり方
です。
一言でまとめるよ
まぁ「エンディアン」って単語が出てきたら「データをバイト単位で見たときの並べ方なんだな~」と お考えください。






