【问题标题】:where does 0x come from? [duplicate]0x 从何而来? [复制]
【发布时间】:2011-05-14 13:07:59
【问题描述】:

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

我刚刚看到一个朋友的评论:

3x12=36
2x12=24
1x12=12
0x12=18

这让我想知道..
为什么他们选择0x 作为十六进制数字的前缀?这个决定背后有什么历史吗?

【问题讨论】:

  • 你的意思是 0x 作为前缀 vor hex-numbers 的历史?
  • @Hinek:完全正确。为什么0x 而不是0?_ 或任何其他字符..
  • 不同语言系统实际上有a lot of ways来表示十六进制,包括前缀和后缀,使用0h甚至$和`\`。
  • 在 C 语言中,您可以输入三种格式的数字: A:十进制 -> 从 1 到 9 开始 B:从 0 开始的八进制(如 037) C:从 0x 开始的十六进制 一个只需要一些分隔符

标签: history multilingual


【解决方案1】:

我认为,因为x来自hex,而0是表示它是一个数字。

【讨论】:

  • 所以有可能用ax 之类的东西来描述字符吗?没听说过。 :) 这个答案似乎最合理,谢谢
  • @Default: 否,但您可以使用0xa
  • 0xa 仍然是一个数字。我只是建议,如果要表示一个数字(使用 0),您可以使用一个字符(例如 a)来表示一个 [hexadecimal] 字符吗?
  • @Default:如果您编写了一个接受它的编译器,那么您当然可以。这确实是语言设计师的决定。
  • @Default 如果axac是十六进制数,axag是变量名会比较复杂,所以语言设计者大多选择0x作为十六进制。
【解决方案2】:

0x 表示该数字可能是十六进制。这适用于 C/C++ 和 probalby 其他 语言。

他的评论是个笑话。他从数字 12 的乘法表开始,但当他到达 0 时,他暗示 0x 不是“0 乘以 ...”,而是“十六进制”,因此十六进制的 12 是十进制的 18。

【讨论】:

    【解决方案3】:

    这是对来自WIKIPEDIA 的十六进制数字的一个笑话。

    前三个被解释为 乘法,但最后是“0x” 信号的十六进制解释 12,也就是 18。

    【讨论】:

      【解决方案4】:

      '0x' 表示后面的数字是十六进制的。这是一种明确说明数字是十六进制的方式,并且是 C 编译器和一些汇编器认可的符号

      【讨论】:

        猜你喜欢
        • 2021-04-29
        • 2023-03-27
        • 1970-01-01
        • 2021-08-14
        • 1970-01-01
        • 1970-01-01
        • 2012-05-03
        • 2010-09-18
        • 2011-12-31
        相关资源
        最近更新 更多