每当我看到直接引用内存上特定位置(例如内存屏障)的 C 程序时,它都是用十六进制数完成的,而且在 Windows 中,当您获得分段时,它会显示用十六进制数分段的内存。
例如:*(0x12DF)
我想知道为什么内存地址用十六进制数字表示?
这样做有特殊原因还是只是惯例?
最佳答案
内存通常以较大的单位进行操作,例如页或段,这 其大小往往是 2 的幂。因此,如果地址以十六进制表示,则为 将它们理解为页面+偏移量或类似结构要容易得多。小数很难,因为 令人讨厌的 5 因子,二进制地址太长而不易读取。
关于language-agnostic - 为什么内存地址用十六进制数表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25617329/