ホストバイトオーダー
読み:ホストバイトオーダー
外語:host byte order
電子計算機が内部で用いる、複数バイトからなるデータ列のデータの並び順のこと。「H形式」ともいう。対語はネットワークバイトオーダー。
概要
バイト順は、搭載しているCPUの種類によって変化する。
パーソナルコンピューターで一般的なx86系プロセッサーでは、最下位バイトが先に配置されるリトルエンディアンである。
680×0、PowerPCやSuperHなど多くは、最上位バイトが先に配置されるビッグエンディアンである。
インターネットで用いられるバイトオーダーと必ずしも一致しないので、随時エンディアンネスを変換する必要がある。
特徴
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はネットワークバイトオーダーをホストバイトオーダーに変換する関数である。
この関数を使用することで、ホストバイトオーダーがビッグエンディアンの環境であってもなくても、ソースの互換性を取ることが出来る。
再検索