基礎理論~エンディアン~
こんばんは、本日二度目の記事です。
雨が強くなり早々に切り上げます。
今回はコラム的な意味合いで エンディアン についてご紹介。地味にFEだと求められる知識です。
物資の運搬(データの運搬)
例えば、Amazonから大量に10箱届いたら、「これはここ、これはこっち」と分けますよね。
玄関にどかどかと積まれるのも大変ですし、積み方も様々です。
コンピュータにおけるデータの保存や転送も同じように「方法」があるんです。その方法をエンディアンといいます。
エンディアン
2バイト以上の数値データを転送、記録する順番のことです。
これは結果のみ見せたほうが早いですね。
転送は、1バイトずつ行われるのが通常です。00000001で一区切り、11101100でまた一区切り、と。
今回は例として、16進数の 1234ABCD を転送してみます。皆さんは是非2進数に変換してみてください。
1バイト = 8bit = 16進数の2桁 ずつ転送しますが、そこに違いが現れます。
それは、「最上位バイトから転送するのか、最下位バイトから転送するのか」。
前者をビッグエンディアン,後者をリトルエンディアンと言います。
具体的にどうなるかというと、
ビッグエンディアン
0 | 1 | 2 | 3 |
---|---|---|---|
12 | 34 | AB | CD |
リトルエンディアン
0 | 1 | 2 | 3 |
---|---|---|---|
CD | AB | 12 | 34 |
です。あくまで8bitずつというところに注意しましょう。
余談
当初、メールなどのデータ転送にも「リトルエンディアンで送るよ!」というのを明記しないと行けなかったんですよね。
でないと、12345678円、と送りたかったのに78563412円と送られてくることになってしまいますからね。
今は、統一されています。