もっと詳しく

通信を行う場合やファイルに格納するデータのバイトオーダーが決められている場合、バイトオーダーを変更する必要があります。
このような場合に必要となるバイトオーダーの変更方法に説明します。
バイトオーダーには、ビッグエンディアンとリトルエンディアンがあります。

以下、バイトオーダーの説明です。
 ・ビッグエンディアン
   … 最上位のバイトから順番に格納する。
 ・リトルエンディアン
   … 最下位のバイトから順番に格納する

格納する値を1とした場合、以下のように格納されます。
 ・ビッグエンディアン(00-00-00-01)
 ・リトルエンディアン(01-00-00-00)

バイトオーダーの変更には、以下の関数を利用します。
 1)リトルエンディアン→ビッグエンディアンへの変更
  ・u_long htonl(u_long hostlong);
  ・u_short htons(u_short hostshort);
 2)ビッグエンディアン→リトルエンディアンへの変更
  ・u_long ntohl(u_long netlong);
  ・u_short ntohs(u_short netshort);

以下、実装方法です。

続きを読む