3

您如何仅通过查看地址来确定地址的对齐方式?

在 32 位系统上,地址 0x12345670 意味着它是 16 字节对齐的(因为末尾的 0)对吗?

那么呢:

0x12345671 0x12345672 0x12345673

ETC?

干杯,乔恩

4

2 回答 2

6

如果 A mod n 为 0,则地址 A 是 n 对齐的。因此 0x12345671 和 0x12345673 是 1 对齐的,而 0x12345672 是 2 对齐的。0x12345670 同时是 1 对齐、2 对齐、4 对齐、8 对齐和 16 对齐。您只提到了两个的最高功率(因为隐含了较低的功率)。

于 2009-08-15T16:11:37.280 回答
4

您查看结尾的十六进制数字:

  • 1、3、5、7、9、B、D、F:1 对齐
  • 2、6、A、E:2 对齐
  • 4、B:4对齐
  • 8:8对齐
  • 10、30、50、70、90、B0、D0、F0:16 对齐
  • 20、60、A0、E0;32 对齐
  • 40、B0:64 对齐
  • 80:128 对齐
  • 00:256 对齐或更多...
于 2009-08-15T16:19:24.520 回答