为什么十六进制数字前缀为0x
?
我理解前缀的用法,但不明白为什么的意义0x
被选中。
短篇故事: The 0
告诉解析器它正在处理一个常量(而不是标识符/保留字)。仍然需要一些东西来指定数基:x
是任意选择。
很长的故事:在 60 年代,流行的编程数字系统是十进制和octal— 大型机每字节有 12、24 或 36 位,可以很好地被 3 = log2(8) 整除。
BCPL 语言使用的语法8 1234
对于八进制数。当 Ken Thompson 从 BCPL 创建 B 时,他使用了0
前缀代替。这很棒,因为
- 整数常量现在始终由单个标记组成,
- 解析器仍然可以立即知道它有一个常量,
- 解析器可以立即告诉基数(
0
两个基地相同),
- 它在数学上是合理的(
00005 == 05
), and
- 不需要珍贵的特殊字符(如
#123
).
当从 B 创建 C 时,出现了对十六进制数的需求(PDP-11 有 16 位字),并且上述所有要点仍然有效。由于其他机器仍然需要八进制,0x
被任意选择(00
可能因为尴尬而被排除)。
C# 是 C 的后代,因此它继承了语法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)