ホストバイトオーダー
読み:ホストバイトオーダー
外語:host byte order

 電子計算機が内部で用いる、複数バイトからなるデータ列のデータの並び順のこと。「H形式」ともいう。対語はネットワークバイトオーダー
目次

概要
 バイト順は、搭載しているCPUの種類によって変化する。
 パーソナルコンピューターで一般的なx86系プロセッサーでは、最下位バイトが先に配置されるリトルエンディアンである。
 680×0PowerPCSuperHなど多くは、最上位バイトが先に配置されるビッグエンディアンである。
 インターネットで用いられるバイトオーダーと必ずしも一致しないので、随時エンディアンネスを変換する必要がある。

特徴
 C/C++のBSDソケットプログラミングにおいては、次のような機能が用意されている。
 #include <arpa/inet.h>
 uint32_t htonl(uint32_t hostlong);
 uint16_t htons(uint16_t hostshort);
 uint32_t ntohl(uint32_t netlong);
 uint16_t ntohs(uint16_t netshort);
 32ビットのものはIPv4アドレス用、16ビットのものはポート番号用で、htonがホストバイトオーダーをネットワークバイトオーダーに、ntohはネットワークバイトオーダーをホストバイトオーダーに変換する関数である。
 この関数を使用することで、ホストバイトオーダーがビッグエンディアンの環境であってもなくても、ソースの互換性を取ることが出来る。

再検索