INTEL厨 vs AMD厨 Part31

このエントリーをはてなブックマークに追加
735 ◆Rb.XJ8VXow
さてと、君等がバイトオーダーの違い(特にLittle Endian)を気にしているようなので・・・
少しだけお話しよう(笑

680X0系のメモリー配置はビッグエンディアンであり上位ビットより配置される。
80X86系のメモリー配置はリトルエンディアンであり下位ビットより配置される。

とまぁ、ここまでは君等の考えている通りだ。
このメモリー配置の違いで一番困るのは通信だ。
相手が異なるバイトオーダーの時、通信で受け取ったデータを
自環境のバイトオーダーで解釈してまうことで問題となる。

では、自環境内でポインターを使うときにバイトオーダーを気にする必要があるのか?
この答えは、気にしないとダメな場面は少ないと言っておこう。

ちなみに

a[6]={"abcde"};
は80X86系の実メモリー配置だと null + edcba となる。

このとき
a[0]には a が格納されている。
a[1]には b が格納されている。
a[2]には c が格納されている。
a[3]には d が格納されている。
a[4]には e が格納されている。

混乱に油を注ぐようだが、これがヒントだ(笑