差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
programming:バイトオーダーの変換_バイトスワップ [2013-04-09 11:39] Decomo Page moved from プログラミング:programming:programming:バイトオーダーの変換_バイトスワップ to programming:バイトオーダーの変換_バイトスワップ |
programming:バイトオーダーの変換_バイトスワップ [2016-04-06 10:45] Decomo [バイトオーダーとは何ぞや] |
||
---|---|---|---|
行 8: | 行 8: | ||
===== バイトオーダーとは何ぞや ===== | ===== バイトオーダーとは何ぞや ===== | ||
- | バイトオーダーとは、多バイトデータをメモリに格納する際の配置方法の種類のことで、エンディアンやエンディアンネスとも呼ばれる。 | ||
- | バイトオーダーはコンピュータシステムごとに異なり、現在ではx86系などで使用される**リトルエンディアン(LE)**と、PowerPC((ビッグエンディアンなのはG5のみ。G4まではバイエンディアン。))/ | + | バイトオーダーとは、多バイトデータをメモリに格納する際のバイトの配置法のことで、エンディアンやエンディアンネスとも呼ばれる。 |
+ | |||
+ | バイトオーダーはコンピュータシステムごとに異なり、現在ではx86系などで使用される**リトルエンディアン(LE)**と、PowerPC((ビッグエンディアンなのはG5のみ。G4まではバイエンディアン。))/ | ||
例えば「0x1234CDEF」という32bitの数値のメモリ配置は、LE/ | 例えば「0x1234CDEF」という32bitの数値のメモリ配置は、LE/ | ||
- | ^メモリ番地 | + | ^ 番地|0000|0001|0002|0003| |
- | | | + | ^ リトル|EF|CD|34|12| |
- | | 0001 | + | ^ ビッグ|12|34|CD|EF| |
- | | 0002 | + | |
- | | 0003 | 12 | | + | |
- | LEの方はデータの下位バイトから、BEはデータの上位バイトから、それぞれメモリに順次格納する。人間から見ればBEの方が分かりやすいが、コンピュータ的にはLEの方が処理しやすいらしい。 | + | LEはデータの下位バイト、BEはデータの上位バイトから、それぞれメモリの下位番地より順次配置する。人間から見ればBEの方が分かりやすいが、コンピュータ的にはLEの方が都合がいいらしい。また、データの下位バイトがメモリの下位番地に格納される、という意味ではLEの方が理にかなっていると考えることもできる。 |
===== バイトオーダーの違いによる問題 ===== | ===== バイトオーダーの違いによる問題 ===== |