2008-08-16

リトルエンディアンとビックエンディアン

下位の桁を下位のアドレスに入れるというのは自然な発想だ、というのが私がいつも思うことです。最初に覚えたアセンブラが8086だからというのもありますが。

問題は位取り記数法でアラビア数字を書くときになぜ左から右へ、上位の桁から下位の桁へ書いていくのかということ。Wikipedia:アラビア数字によると、右から左へ書くアラビア語の中で、インド数字は左から右へ書くのだそうだ。これは、読むときに下位から上位へ読むのだろうか。それとも、目線を移動して、上位から下位へ読み、また目線を移動して読み進めるのだろうか。ワープロにわざわざ方向を切り替える機能があるということは、たぶん後者なんだろうな。

一方で、多くのバイナリエディタは下位のアドレスを左、上位のアドレスを右にして表示している。逆ではダメなのだろうか。

そういえば、数値を文字列へ変換する処理がやや面倒なものになるのも、このあたりの事情が関係している。10で割った余りを左から詰めていくだけで良いのなら、かなり簡単なものになるだろうに。

人は大きなものの方から先に知りたがるという事なのだろうか。