问题

为什么十六进制数预先固定为0x? 我理解前缀的使用,但我不明白为什么选择0x的重要性.

  最佳答案

简短的故事:0告诉解析器它处理常量(而不是标识符/保留单词).仍然需要指定数字基数:x是一个任意选择.

长篇小说:在60年代,流行的编程数字系统是十进制和八进制,主帧每字节有12,24或36位,3=log2(8)很好地可见。

BCPL语言使用八进制数字的语法8 1234.当Ken Thompson从BCPL创建B时,他使用0前缀.这很棒,因为

  1. 整数常数现在总是由一个令牌组成
  2. 解析器仍然可以立即告诉它有一个常数
  3. 解析器可以立即告诉基础(0在两个基础上相同),
  4. 它在数学上是理智的(00005 == 05),
  5. 不需要珍贵的特殊字符(如 #123)。

当C从B创建时,出现了十六进制数字的需要(PDP-11有16位单词),上面的所有点都仍然有效.由于其他机器仍然需要八进制,因此任意选择0x(00可能被排除为尴尬).

C#是C的后代,因此它继承语法.

  相同标签的其他问题

csyntaxhex