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

我从来没有在我的代码中使用八进制数字,也没有遇到任何使用它的代码(尽pipe有hex和二进制)。

我在1994年开始用C / C ++编程,所以也许我太年轻了? 较旧的代码是否使用八进制? C包含了对这些的支持,通过预先设置0,但是使用这些基本8数字文字的代码在哪里呢?

我最近不得不编写访问3位字段的networking协议代码。 当您想要debugging时,八进制会派上用场。

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

 0x492492 

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

 022222222 

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

 010 010 010 010 010 010 010 010 

现在我唯一遇到的八进制文字是处理Linux中文件的权限位,通常以3个八进制数字表示,其中每个数字分别表示文件所有者,组和其他用户的权限。

例如0755(大多数命令行工具也只有755)意味着文件所有者具有完全权限(读取,写入,执行),而组和其他用户只具有读取和执行权限。

以八进制表示这些位使得更容易确定设置了什么权限。 一眼就可以知道0755是什么意思,而不是493或0x1ed。

从维基百科

在八进制最初被广泛用于计算的时候,像IBM大型机这样的系统采用了24位(或36位)的字。 八进制是这些机器二进制的理想缩写,因为八个(或十二个)数字可以简洁地显示整个机器字(每个八进制数字覆盖三个二进制数字)。 它还通过允许数码pipe,七段显示器和计算器用于操作员控制台来降低成本; 二进制显示太复杂,十进制显示需要复杂的硬件来转换基数,hex显示需要显示字母。

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

-亚当

我从来没有在我的代码中使用八进制数字,也没有遇到任何使用它的代码。

我敢打赌你有。 根据标准,从零开始的数字文字是八进制的。 这一般包括0 。 每当你使用或看到一个文字零,这是八进制。 奇怪而真实。 🙂

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

我也看到了在飞机转发器中使用的八进制。 一个模式3a转发器代码是一个12位数字,每个人都处理4个八进制数字。 维基百科上有更多的信息。 我知道这通常与电脑无关,但FAA也使用电脑:)。

这对Unix mkdirchmodmkdir函数很有用,但除此之外,我想不出任何其他的常见用法。

我通过PDP-11接触到了Octal,所以很明显,做了C语言:)

从60年代末到70年代,仍然有一些老式的过程控制系统(Honeywell H4400,H45000等)被安排使用24位字和八进制寻址。 想想美国最后一座核电站的build造时间是一个例子。

replace这些工业系统是一项非常重要的任务,所以你可能只是幸运地在它们灭绝之前就遇到一个,并且敬畏于他们的macros伟定制浮点格式!

tar文件将信息存储为八进制整数值string

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

没有任何理由要修改一个可以追溯到语言诞生的标准,而且存在于无数的程序中。 我仍然记得ASCII字符的八进制值,不得不想出hex值A,但它是八进制的101; 数字0是060 … ^ C是003 …

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

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

八进制是和第一个可用的显示硬件(7段显示)最有用的。 这些原始显示器没有解码器可供使用。

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

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

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