通信を行う場合やファイルに格納するデータのバイトオーダーが決められている場合、バイトオーダーを変更する必要があります。
このような場合に必要となるバイトオーダーの変更方法に説明します。
バイトオーダーには、ビッグエンディアンとリトルエンディアンがあります。
以下、バイトオーダーの説明です。
・ビッグエンディアン
… 最上位のバイトから順番に格納する。
・リトルエンディアン
… 最下位のバイトから順番に格納する
格納する値を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);
以下、実装方法です。