-3

x86スタックのように動作するスタッククラスをC#で作成しています(ワードパディング、さまざまなサイズの「オブジェクト」をプッシュおよびポップする機能など)。

を呼び出すとPush<int>(0x01234567)、下の ASCII アートが何が起こるかを示します。これはビッグエンディアンですか、リトルエンディアンですか。

| 0x01 | 0x23 | 0x45 | 0x67 |  ---- Low Address  (New  top)
   |      |      |      \----> 0x67
   |      |      \-----------> 0x45
   |      \------------------> 0x23
   \-------------------------> 0x01
                               ---- High Address (Orig top)
4

2 に答える 2

1

最下位バイト (0x67) は最下位アドレスにあるため、リトル エンディアンです。

于 2012-06-09T00:47:31.930 に答える
1

それらは値の個々のバイトですか、それとも の 16 進表現をチャンクでint表示する奇妙な方法ですか? intリトル エンディアンでは、最下位バイトが最も低いメモリ アドレスを持つためです。つまり、メモリ内のバイトの生の 16 進表示では最初に表示されます。ただし、スタックでは、その最初のバイトは最上位アドレスに格納されます。これはビッグエンディアンになります。

于 2012-06-09T05:50:45.693 に答える