ビッグエンディアンシステムと最小のメモリアドレス
-
29-09-2020 - |
質問
私は en.wikipedia その「Big-Endian Systemsは最も多くを保存します。最も小さいメモリアドレスと最も小さい最下位バイトの単語の重要なバイト。対照的に、リトルエンディアンシステムは、最下位バイトを最小のアドレスに格納します。 " しかし、私は「最小のメモリアドレス」とは何がわからないため、「ビッグエンディアンはインターネットプロトコルスイートなどのネットワークプロトコルの主な順序で、ネットワークオーダーと呼ばれ、最も多くを送信します。重要なバイトの最初の「これらの種類のプロトコルでは、最初のメモリアドレスが最小のメモリアドレスにアクセスされ、リトルエンディアンシステムがメモリアドレスにアクセスされますか?
解決
メモリバイトのマップがインクリメンタルアドレスの順序で左から右に配置されている場合は、最小のアドレスが左側にあります。最大の住所は右側にあります。
アドレス0x01234567
で、Hexの0x1000
である32ビット値、19088743を格納しているとしましょう。したがって、4バイトの値は、メモリアドレス0x1000
、0x1001
、0x1002
、および0x1003
ビッグエンディアンでは、01
は0x1000
(最小アドレス)に格納され、67
は0x1003
(最大アドレス)に格納されています。あなたがリトルエンディアンの聞いたことがないならば、正確にそれについてどう思うか。
リトルエンディアンでは、01
は0x1003
(最大アドレス)で保存され、67は0x01000(最小のアドレス)に格納されます。
ビッグエンディアンとネットワークバイトオーダーは一般的に同じことを意味します。
ビッグエンディアン
|===================================|
| 0x1000 | 0x1001 | 0x1002 | 0x1003 |
|-----------------------------------|
| 0x01 | 0x23 | 0x45 | 0x67 |
|===================================|
.
リトルエンディアン
|===================================|
| 0x1000 | 0x1001 | 0x1002 | 0x1003 |
|-----------------------------------|
| 0x67 | 0x45 | 0x23 | 0x01 |
|===================================|
. 他のヒント
メモリの1ギブのメモリを持つコンピュータがあるとしました。つまり、 $ 2 ^ {30} $ バイトです。このメモリがどのようにして配置されているのは、このメモリが左から左へ、左から左へ(左から右への書き込みに使用されている人々)、上から下へ、または下から上へ。それは純粋にあなたの心の中で(または紙の上の図面)ですが、あなたが持っているメンタルイメージはどんなメンタルイメージでも、最初と最後のバイトがあります。
通常は整数からメモリバイトへのマッピングがあります。その場合は、最初のバイト目に最低数字を関連付ける可能性があります。最低数は0.