为什么C#中没有八进制文字?

时间:2018-11-24 13:08:45

标签: c#

为什么开发C#的人为什么不包括十六进制和二进制文字之外的八进制文字?做出该决定的原因似乎是什么?

2 个答案:

答案 0 :(得分:7)

总体编码是1950年代和60年代后期计算的结果。那时,它非常有用,公司制造的机器具有6位字节,通常打包为18位或36位字。 6位就足够每个人使用,电传打字机和打印机还没有小写字母,而英语是主要语言。

八进制对于这样的6位字节很好,需要2位数字并且所有位都被使用。

这确实不可避免,IBM-360很有影响力,它有8位字节。 1970年的PDP-11非常重要,它是一款价格适中的8位字节16位机器。 1975年左右,古老的体系结构获得了恐龙的地位,程序员开始大量青睐十六进制。八进制编码8位字节比较笨拙,十六进制给了我们2位数字。那个时代的微处理器套件全部使用十六进制。

Octal的使用寿命比预期的要长得多。 DEC手册始终使用八进制符号,即使对于8位数字也是如此。 C语言将其带入花括号语言,狭义地讲,它始于GE-635和PDP-8 6位计算机。狭义地讲,直到PDP-11才变成真正的C,但是种子被种植了。用一种非常容易的八进制值指定方法,在文字上以0开头。

产生不计其数的错误,并使程序员大为困惑。 C#团队从其花括号语言中彻底删除了此类常见的错误生成器。他们做得很棒。

答案 1 :(得分:1)

许多人使用0作为视觉对齐的前缀,八进制文字通常被视为编程语言中的“猎枪”。

var x =  11;
var y = 011;

当十六进制和二进制文字需要特殊的字母数字前缀0x0b时,这可能是偶然发生的。现代语言试图减少这种脚步枪。

相关问题