八进制数(以8为底)有什么用?

jok*_*njo 11 java literals octal

Java提供了以2、8、10和16为基数编写数字文字的方法。

我想知道为什么包括基数8,例如int x = 0123;

我认为可能存在类似于十六进制的一个字节的容量为FF + 1等等的事实。

And*_*ner 16

这个答案是针对最初的问题写的:“为什么以8为底的数字是有用的?”

这是为了让熟悉C等语言的人熟悉该语言。然后问题是为什么要在那些语言中支持它!

有些架构(各种PDP)使用18位宽的字(其他使用36位字),因此数字为3位宽的文字将很有用。

实际上,我在Java代码中看到的唯一地方是用于指定unix样式的权限,例如07770644等等。

(为什么支持它的嘲讽式回答是“ 对此问题进行投票”)。


小智 7

“八进制数不像以前那样普遍。但是,八进制数用于一个字中的位数是3的倍数的情况。它还用作表示UNIX系统上文件许可权和表示形式的简写形式。 UTF8数字等。”

来自:https : //www.tutorialspoint.com/octal-number-system

  • 并不是真正的“单词中的位数”,因为它在16位小型计算机上以高位0/1然后是8个八进制数的形式使用。更好的描述可能是:当单词中_field_的大小是8位的倍数时使用。那些相同的计算机(通常)有8个寄存器-因此,指令中指定的寄存器将具有3位字段来命名寄存器,寄存器到寄存器指令将具有两个此类3位字段;那些相同的计算机经常具有3位操作码,或3位操作码带有“转义”(例如0111)到_6位操作码;等等等 (3认同)