【问题标题】:Why does a memory address start with 0x? [duplicate]为什么内存地址以 0x 开头? [复制]
【发布时间】:2026-02-16 09:25:01
【问题描述】:

可能重复:
Why are Hexadecimal Prefixed as 0x?

内存地址通常表示为以0x 为前缀的十六进制值。例如:

> new.env()
<environment: 0x21d36e0>

0x 部分有什么意义吗?这个符号从何而来?是否有任何其他值可以代替0x

【问题讨论】:

    标签: c++ c linux memory operating-system


    【解决方案1】:

    0x 只是一个符号,让您知道该数字是十六进制形式。

    就像您将 042 用于八进制数,或将 42 用于十进制数一样。

    所以 - 42 == 052 == 0x2A.

    【讨论】:

    • “0”帮助解析器知道它处理的是一个(常数)数字,“x”代表十六进制。
    • @JesseGood....那么解析器如何知道十进制数的情况,因为它前面没有 0。
    • @Tejendra 它通过排除知道。如果不是00x,则为十进制:)
    • @LuchianGrigore...thnx 澄清 :)
    【解决方案2】:

    内存地址通常以十六进制表示,0x只是十六进制数的表示法。

    【讨论】:

    • 是的,但首选的格式是十六进制。
    最近更新 更多