エンディアン
エンディアンの相違は、単一あるいは同種のシステムに閉じた運用をする限りでは通常は問題にならない。それ以上のことをする場合の、問題が起こりやすい例を示す。
ネットワークを通してバイト単位でデータをやりとりする場合
異なるシステム間でバイナリファイルなどを交換する場合
異なるシステムにプログラムを移植する場合
構成するプロセッサが異なるマルチプロセッサ環境で共有メモリを使用する場合
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(リトルエンディアン)である。
4バイトの数値0x01234567を記憶するために、4バイトの連続した記憶装置に並べる例を提示する。 16進数表記した上記数値の一番小さい桁の1バイト分は0x67であり、一番大きい桁の1バイト分は0x01である。 表のアドレスは、左が小さいアドレス80で、右が大きいアドレス83を示すことに注意。
下記は、記憶装置でのバイトオーダを表示し、規則を簡易的に判定する例である。 表と同じく左が小さいアドレスで、右が大きいアドレスで表示している。
リトルエンディアン、日本語UTF-8のLinux環境での処理結果
IBMのメインフレーム(および互換機)、モトローラのMC68000(および後継)、サン・マイクロシステムズのSPARCなどはビッグエンディアンを採用し、DECのVAX、インテルのx86などはリトルエンディアンを採用している。ARMアーキテクチャ、PowerPCなど、エンディアンを切り替えられるバイエンディアン (bi-endian) のプロセッサも存在する。
言語処理系などの仮想マシンの類では、プラットフォームに応じ使い分ける設計のものもあれば、片方に寄せる設計のものもある。例えば、Java仮想マシンはプラットフォームを問わずビッグエンディアンである。