了解Endianness

时间:2012-06-09 00:36:06

标签: c# stack endianness

我正在用C#编写一个堆栈类,其行为类似于x86堆栈(填充字符,能够推送和弹出不同大小的“对象”等)。

如果我致电Push<int>(0x01234567),下面的ASCII艺术描述了应该发生的事情。这是大端还是小端。

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

2 个答案:

答案 0 :(得分:1)

最低有效字节(0x67)位于最低地址,因此是小端。

答案 1 :(得分:1)

这些是int值的单个字节,还是以块的形式显示int十六进制表示的奇怪方式?因为在little-endian中,最低有效字节具有最低的存储器地址,即它首先出现在存储器中字节的原始十六进制视图中。但是,在堆栈中,第一个字节存储在最高地址中,然后是大端地址。