|
▼脱力さん:
>>インテルのCPUはリトルエンディアンですので、32ビットの整数 0x12345678 は、
>>バイト単位では、0x78, 0x56, 0x34, 0x12 の順に格納されます。
>
>インテル以外(MMXを含んでない場合なのかな)は上からなのでしょうか?
>ちょっと、気になったので(^^;
私的にはリトルエンディアン派なので(笑)、リトルエンディアンが最近は主流ではないかと思うのですが、インテルもPentium以降、ビッグエンディアンとリトルエンディアンを切り替えられるようになっていたと思います。ただ、互換性のため、普通リトルエンディアンしか使わないと思いますが。
PS2のプロセッサも両方使えたと思いますが、デフォルトはリトルエンディアンだったと思います。
一方、モトローラのプロセッサはビッグエンディアンです。X68000とかMacなどはビッグエンディアンです。
というわけで、エンディアンはプロセッサによってまちまちです。(^^;
486以降には、BSWAP というデータのエンディアンを変換する命令がありますので、アセンブラの場合、これを使うとデータの変換が簡単です。
C の場合、少々面倒ですけど…。
|
|