Renesas Synergy™

FAQ 1008716 : エンディアン(Endian)

16ビット幅以上のデータを1バイト(8ビット) ごとに区切って、メモリ・アクセスやデータ転送する場合に、アドレスと対比させる順序のことで、バイト・オーダとも呼びます。
アドレスの小さい方から、「上位バイト→下位バイト」の順に配置する場合をビッグ・エンディアン(Big Endian)、「下位バイト→上位バイト」の順に配置する場合をリトル・エンディアン(Little Endian)と呼びます。

たとえば0x12345678という32ビット・データでは、それぞれ次のような定義になります。

アドレス 0 1 2 3
ビッグ・エンディアン 0x12 0x34 0x56 0x78
リトル・エンディアン 0x78 0x56 0x34 0x12


インテルの86系CPUはリトル・エンディアンですが、モトローラの68系CPUはビッグ・エンディアンです。エンディアンの切り替えができるデバイスもあります。
Endianという名称は、ガリバー旅行記の中の、ゆで卵をどちらの端から割るかという議論に由来しています。この物語では、大きい方の端から割る人々を Big End-ian、小さい(とがった)方の端から割る人々をLittle End-ianと呼んでいました(-ianは「~な人々」という接尾辞)。

 

他にご質問がございましたら、リクエストを送信してください