ビッグ/リトルエンディアンとは、データの並び順を示す用語である。英語では名詞なのでendiannessである。
16ビットコンピューターなら2バイト(=16ビット)ごと、32ビット、64ビットコンピューターならそれぞれ4, 8バイトごとにデータを処理していくが、扱う単位データ内でバイト列を先頭から順番に並べていく方式をビッグエンディアン、逆順に並べていく方式をリトルエンディアンと呼ぶ。
たとば32ビット16進数で、6789ABCD(16) (= 1,737,075,661)という数値を記述する場合、ビッグエンディアンならそのまま67 89 AB CDだが、リトルエンディアンだとCD AB 89 67となる。
あえてデータを逆順に並べるリトルエンディアンは、何らかの理由でその方が効率が良い場合に選択されることが多い。たとえば、足し算なら繰り上がりがあるので下の桁から処理したほうが効率が良い、など。
モトローラのMC68000系CPUはビッグエンディアン、インテルのx86系CPUはリトルエンディアンである。中にはARM系やPowerPCのように両者を予め選択できるシステムもある。
x86がリトルエンディアンなのは、8ビットCPUの時代に14ビットのメモリアドレス処理をしようとした時の名残らしい。
Unicodeの文字符号化方式のうちUTF-16とUTF-32では、1文字が複数バイトで構成されるが、バイト列の並べ方にビッグエンディアンとリトルエンディアンの両方が存在する。ファイル読み込みの際にエンディアンを指定する方法以外に、ファイルの先頭にバイトオーダーマークを付加してエンディアンを自動判別させる方法がある。
リトルエンディアンがあるのは、WindowsがIntelのCPUに合わせてUnicodeを16ビットリトルエンディアン方式で内部処理していたためらしい。
下記動画はビット単位だが、このように下位の桁から処理したほうが良いアルゴリズムも存在する。
掲示板
提供: さくらねこ
提供: クロ
提供: 狩猫
提供: 奥沢美咲
提供: GUEST
急上昇ワード改
最終更新:2025/04/13(日) 19:00
最終更新:2025/04/13(日) 19:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。