0x 从何而来? [复制]

Posted

技术标签:

【中文标题】0x 从何而来? [复制]【英文标题】:where does 0x come from? [duplicate] 【发布时间】: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 开始的十六进制 一个只需要一些分隔符 【参考方案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 编译器和一些汇编器认可的符号

【讨论】:

以上是关于0x 从何而来? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统启动过程的打印信息从何而来?

神经网络从何而来?

UnobservedTaskException - 任务从何而来

WAMP phpmyadmin 403 错误,不知从何而来?

Cocoa - NSError 描述不知从何而来

SKProduct Swift - 信息从何而来?