こなさんち

しがないフリーランスエンジニアの備忘録。

基礎理論~エンディアン~

こんばんは、本日二度目の記事です。

雨が強くなり早々に切り上げます。

今回はコラム的な意味合いで エンディアン についてご紹介。地味に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円と送られてくることになってしまいますからね。

今は、統一されています。