SIMPLE 0 シリーズ : ザ・備忘録

仕事の事を書くし、勉強した事もかくよ

用語備忘録的な何か: バイトオーダー

開発中にリトルエンディアン、ビックエンディアンを意識すべき場面が増えたのでまとめる

 

バイトオーダ - ビッグエンディアン/リトルエディアン

 

  • そもそもバイトオーダーって…

バイトのデータ列をバイト列に変換する方法

 

  • なんでこんなの考える必要あるの?

現在のメモリアクセスの主流:バイトアドレッシング方式(1Byte毎にアドレスを付ける方式)

 

プログラムの数値演算単位:レジスタ長が単位(32bitプロセッサの場合、1度に32bitの数値を扱う)

 ⇒「32bitは4Byteだが、どの順番でメモリに書くの?」

 となる。この際、リトル、ビックエンディアンを考えるのだ

 

正直上のURLリンクにある画像を見るのが一番わかりやすい

 

トルエンディアン

最下位ビットの属するバイト列を低位のバイト列に格納する。バイナリダンププログラムで読むと「順序が逆」

 

ビックエンディアン

最上位ビットの属するバイト列を低位のバイトに格納する。バイナリダンププログラムで読むと「そのまま読める」

 

トルエンディアン、ビックエンディアンの採用によって処理速度に違いが出るらしいですが、これは今回割愛