programming:バイトオーダーの変換_バイトスワップ

差分

このページの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まではバイエンディアン。))/MC68000/SPARCなどで使用される**ビッグエンディアン(BE)**の2つに大別される。+バイトオーダーとは、多バイトデータをメモリに格納する際のバイトの配置法のことで、エンディアンやエンディアンネスとも呼ばれる。 
 + 
 +バイトオーダーはコンピュータシステムごとに異なり、現在ではx86系などで使用される**リトルエンディアン(LE)**と、PowerPC((ビッグエンディアンなのはG5のみ。G4まではバイエンディアン。))/MC68000/SPARCなどで使用される**ビッグエンディアン(BE)**の2つに大別される。スマートフォンの台頭で一般的となったARM系はLEで使われることが多い
  
 例えば「0x1234CDEF」という32bitの数値のメモリ配置は、LE/BEでそれぞれ以下のようになる。 例えば「0x1234CDEF」という32bitの数値のメモリ配置は、LE/BEでそれぞれ以下のようになる。
  
-^メモリ番地 ^LE ^BE | + 番地|0000|0001|0002|0003
-|  0000   EF   12  + リトル|EF|CD|34|12
-|  0001   CD   34  + ビッグ|12|34|CD|EF|
-|  0002   34   CD  | +
-|  0003  |  12  |  EF  |+
  
-LEの方はデータの下位バイトから、BEはデータの上位バイトから、それぞれメモリ順次格納する。人間から見ればBEの方が分かりやすいが、コンピュータ的にはLEの方が処理しやすいらしい。+LEはデータの下位バイト、BEはデータの上位バイトから、それぞれメモリの下位番地より順次配置する。人間から見ればBEの方が分かりやすいが、コンピュータ的にはLEの方が都合がいいらしい。また、データの下位バイトがメモリの下位番地に格納される、という意味ではLEの方が理にかなっていると考えることもできる
  
 ===== バイトオーダーの違いによる問題 ===== ===== バイトオーダーの違いによる問題 =====
  • programming/バイトオーダーの変換_バイトスワップ.txt
  • 最終更新: 2021-03-05 09:32
  • by Decomo