language-agnostic - 为什么内存地址用十六进制数表示?

标签 language-agnostic memory hex

每当我看到直接引用内存上特定位置(例如内存屏障)的 C 程序时,它都是用十六进制数完成的,而且在 Windows 中,当您获得分段时,它会显示用十六进制数分段的内存。
例如:*(0x12DF)
我想知道为什么内存地址用十六进制数字表示?
这样做有特殊原因还是只是惯例?

最佳答案

内存通常以较大的单位进行操作,例如页或段,这 其大小往往是 2 的幂。因此,如果地址以十六进制表示,则为 将它们理解为页面+偏移量或类似结构要容易得多。小数很难,因为 令人讨厌的 5 因子,二进制地址太长而不易读取。

关于language-agnostic - 为什么内存地址用十六进制数表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25617329/

相关文章:

.net - 如何在.net 中进行内存转储?

c - 如何在 C 中的 fork 进程中查找共享/复制的内存页

actionscript-3 - 如何修复浮点不精确的输出?

language-agnostic - 二维空间中生长圆的有效表示?

C# 64 位应用程序,大内存地址感知

java - 长字符串转为十六进制字符串

java - 在 Java 中将十六进制字符串转换为 int

oop - 哪些语言不被视为 OOP 语言

math - float 学坏了吗?

PHP 将整数转换为十六进制