リトルエンディアン・ビッグエンディアン・ミドルエンディアン・バイエンディアンの違いについて

メモリー

概要

リトルエンディアンとビッグエンディアンの違いについてまとめる。

エンディアンとは

  • 複数のバイトの並びの方式をエンディアン、またはバイトオーダーと呼ぶ
  • データをメモリ上にロードするときの配置の仕方 
  • エンディアンはCPUやプロトコル、OSによってそれぞれ決まっている
  • 異なるシステム間やネットワーク間でデータをやりとりする際にエンディアンによる問題が発生しやすい
    • ex. バイナリを解析したいときなどエンディアン変換が必要となる

ビッグエンディアン

  • メモリの下位アドレスから順番に、データの上位バイトから下位バイトの順で配置していく方式
  • ex. 16進数 00 01 02 03 → 00 01 02 03

リトルエンディアン

  • メモリの上位アドレスから順番に、データの上位バイトから下位バイトの順で配置していく方式
  • ex. 16進数 00 01 02 03 → 03 02 01 00

ミドルエンディアン

  • 上記2つよりも変則的な方式。

バイエンディアン

  • ビッグエンディアンとリトルエンディアンを切り替える方式

参考 

About the author

Image

bmf san @bmf_san
A web developer in Japan.