互換性・移植性
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/29 22:49 UTC 版)
エンディアンの相違は、単一あるいは同種のシステムに閉じた運用をする限りでは通常は問題にならない。それ以上のことをする場合の、問題が起こりやすい例を示す。 ネットワークを通してバイト単位でデータをやりとりする場合 異なるシステム間でバイナリファイルなどを交換する場合 異なるシステムにプログラムを移植する場合 構成するプロセッサが異なるマルチプロセッサ環境で共有メモリを使用する場合 TCP/IPプロトコルスタックでは、ビッグエンディアンに統一しており、それをネットワークバイトオーダという。この分野では、それに対し、各コンピュータのエンディアンをホストバイトオーダという。 画像や音声などのバイナリファイルにおいても、異なるコンピュータ間の互換性を確保するため、通常はエンディアンが規定される。 Unicodeにおいても、構成要素が多バイトとなるエンコーディング(主にUTF-16)では、エンディアンが問題となる。そのため、バイト順マーク(英: Byte Order Mark、略語:BOM)と呼ばれる特殊なコード (U+FEFF) が予約されており、データの先頭にこれを付与することで、データを受け取る側がエンディアンを判別できるようになっている。BOMがない場合には、ビッグエンディアンだと決められている(→ UTF-16)。 ただし、復号側が以上のルールでエンディアンを判別する狭義のUTF-16とは別に、エンディアンを事前に一方に決定しているUTF-16BEとUTF-16LEが存在する。Windows上の文書における「Unicodeテキスト」は、BOMがない場合、UTF-16LE(リトルエンディアン)である。
※この「互換性・移植性」の解説は、「エンディアン」の解説の一部です。
「互換性・移植性」を含む「エンディアン」の記事については、「エンディアン」の概要を参照ください。
- 互換性移植性のページへのリンク