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来表示十六进制,包括前缀和后缀,使用0
、h
甚至$
和`\`。
在 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 从何而来? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
UnobservedTaskException - 任务从何而来