八进制数字文字:什么时候?为什么?自从?

时间:2008-09-04 19:29:34

标签: c numbers

我从来没有在我的代码中使用过八进制数字,也没有遇到任何使用它的代码(尽管有十六进制和bit twddling)。

我在1994年开始用C / C ++编程,所以也许我太年轻了?旧代码使用八进制吗? C包括对这些的支持,前缀为0,但是使用这些基数为8的数字文字的代码在哪里?

13 个答案:

答案 0 :(得分:45)

我最近不得不编写访问3位字段的网络协议代码。当您想要调试时,Octal会派上用场。

为了效果,你能告诉我这是什么3位字段吗?

0x492492

另一方面,八进制中的相同数字:

022222222

现在,最后,以二进制(以3为一组):

010 010 010 010 010 010 010 010

答案 1 :(得分:33)

这几天我遇到的八字形文字的唯一地方是处理Linux中文件的权限位,通常表示为3个八进制数字,其中每个数字分别代表文件所有者,组和其他用户的权限

e.g。 0755(对于大多数命令行工具也只有755)意味着文件所有者具有完全权限(读取,写入,执行),并且该组和其他用户只具有读取和执行权限。

以八进制表示这些位可以更容易地确定设置的权限。您可以一目了然地了解0755的含义,但不是493或0x1。

答案 2 :(得分:28)

来自Wikipedia

  

当八进制最初时   变得广泛用于计算,   IBM大型机等系统   使用24位(或36位)字。   Octal是理想的缩写   这些机器的二进制因为   八(或十二)个数字可以   简洁地显示整个机器   单词(每个八进制数字覆盖三个   二进制数字)。它还削减了成本   允许Nixie管,七段   显示器和要使用的计算器   用于操作员控制台;哪里   二进制显示太复杂了   使用,十进制显示需要复杂   转换基数的硬件,和   需要显示的十六进制显示   字母。

     

所有现代计算机   但是,平台使用16-,32-或   64位字,有8位制作   一个字节。在这样的系统上三个八进制   需要数字,用   最重要的八进制数字   不合理地只代表两个   二进制数字(并且在一系列中   相同的八进制数字代表一个   下一个字节的二进制数字)。   因此十六进制更常见   今天用于编程语言,   因为十六进制数字覆盖四个   二进制数字和所有现代计算   平台有机器字   可被4整除。一些   具有两个幂的平台   大小仍然有指令子词   如果更容易理解   以八进制显示;这包括   PDP-11。现代无处不在的x86   架构属于这一类   同样,但八进制几乎从不   在这个平台上使用。

- 亚当

答案 3 :(得分:23)

  

我从未使用八进制数字   代码也没有遇到任何代码   用过它。

我打赌你有。根据标准,以零开头的数字文字是八进制的。这包括0。每次使用或看到字面零时,这都是八进制的。奇怪但真实。 : - )

答案 4 :(得分:8)

商用航空在古老的Arinc 429总线标准中使用八进制“标签”(基本上是消息类型ID)。因此,在为航空电子应用程序编写代码时能够以八进制指定标签值是很好的......

答案 5 :(得分:6)

我也看到飞机转发器中使用的八进制。模式-3a转发器代码是一个12位数字,每个人处理4个八进制数字。有关Wikipedia的更多信息。我知道它通常与计算机无关,但FAA也使用计算机:)。

答案 6 :(得分:5)

它对Unix领域的chmodmkdir函数很有用,但除此之外,我无法想到任何其他常见用途。

答案 7 :(得分:4)

我通过PDP-11与Octal联系,显然,做了C语言:)

答案 8 :(得分:4)

tar文件将信息存储为八进制整数值字符串

答案 9 :(得分:4)

没有任何世俗的理由来修改一种可以追溯到语言诞生的标准,而这种标准存在于无数的节目中。我还记得他们的ASCII字符 八进制值,必须考虑提出A的十六进制值,但它是八进制的101;数字0是060 ... ^ C是003 ...

也就是说,我经常使用八进制表示法。

现在如果你真的想弯曲我的,请看看PDP-10的字格式......

答案 10 :(得分:3)

从60年代末期和70年代开始,仍有许多旧的过程控制系统(霍尼韦尔H4400,H45000等)被安排使用具有八进制寻址的24位字。想想最后在美国建造核电厂的时间作为一个例子。

取代这些工业系统是一项非常重要的工作,所以你可能只是幸运地在它们灭绝之前就遇到了它们,并对它们宏伟的自定义浮点格式感到敬畏!

答案 11 :(得分:3)

任何学习使用PDP-8进行编程的人都会对八进制数有一个热点。字大小为12位,分为4组,每组3位,因此-1为7777八进制。这个方案在PDP-11中得以延续,PDP-11有16位字,但仍然使用八进制表示各种事物,因此* NIX文件许可方案至今仍然存在。

答案 12 :(得分:1)

对于第一个可用的显示硬件(7段显示器),Octal是最有用的。这些原始显示器后来没有解码器。

因此,数字寄存器输出被分组以适合可用的显示器,该显示器只能显示八(8)个符号:0,1,2 3,4,5,6,7。

第一台CRT显示管也是光栅扫描显示器,最简单的字符符号发生器相当于7段显示器。

激励司机一如既往地是最便宜的显示器。