バイトオーダーについて


すべてのデータは、コンピュータに記憶されています。 この時、特にバイト単位での記憶のされ方をバイトオーダーと 呼びます。 記憶のされ方は、コンピュータ(正確にはCPU)により異なっています。

現在、バイトオーダーには、以下の2種類があります。

  1. Big Endian - 下記のように、最上位から最下位へ順にデータを格納し記憶する方法。
  2. 最上位 最下位
    12 34 56 78
    A - 整数型の4バイトデータ 12345678の場合

    SUN, HP, SGIなどのワークステーションでは、この方法で格納されています。
     
     

  3. Little Endian - 下記のように、最下位から最上位へ順にデータを格納し記憶する方法。
  4. 最上位 最下位
    78 56 34 12
    B - 整数型の4バイトデータ 12345678の場合

    パソコンで主流の80X86系のコンピュータでは、この方法で格納されています。

同一のコンピュータ、同種類のコンピュータで処理する場合には、 この違いを考慮する必要はありませんが、 上記2種類のコンピュータを混在させて使用する場合には、注意が必要です。
ASCIIデータでやり取りする場合には、問題がありませんが、 バイナリデータの場合には、このバイトオーダーを考慮しなければなりません。

バイトスワップについて


MicroAVSのバイナリデータの読み込みでは、IEEEで規格された XDR(External Data Representation)フォーマット (実際にはBig Endian)を 採用しています。

データのバイトオーダーは、 残念ながら、データのみを見て自動的に 判断することはできません。 しかし、もし、バイトオーダーが わかっている場合には、それを変換することが できます。

バイトスワップのパラメータでは、MicroAVSは、 XDR(Big Endian)を仮定しているので、 Little Endianバイトオーダーをバイト単位で並べ替えることによって、 Big Endianバイトオーダーに 変換します。


MicroAVSライブラリ
(C) 1999-2002 KGT Inc. All rights reserved.