【发布时间】:2011-02-06 06:08:00
【问题描述】:
我见过经常使用二进制和十六进制,但从未见过八进制。然而,八进制在某些语言中使用有自己的约定(即,前导 0 表示八进制基数)。什么时候使用八进制?使用八进制或八进制更容易推理的典型情况有哪些?还是只是口味问题?
【问题讨论】:
我见过经常使用二进制和十六进制,但从未见过八进制。然而,八进制在某些语言中使用有自己的约定(即,前导 0 表示八进制基数)。什么时候使用八进制?使用八进制或八进制更容易推理的典型情况有哪些?还是只是口味问题?
【问题讨论】:
当一个字中的位数是 3 的倍数时,或者如果将位分组以 3 为一组表示有意义,则使用八进制。示例如下:
在我从事 IT 工作的大约 25 年中,除了 unix 文件权限位之外,我没有遇到过任何八进制的使用。
但是,如果您的单词中的位数是 4 的倍数,请务必使用十六进制。
【讨论】:
八进制用于表示 UNIX 系统上的文件权限的简写。例如,文件模式rwxr-xr-x 将是0755。
【讨论】:
0x755 是二进制的011101010101,而0755 是111101101。那么,前者意味着在 unix 文件权限方面完全不同。
当语法在某些平台上可能是有意义的时代的遗物时使用八进制(系统字并不总是8位的倍数)。现在可以使用十六进制。
【讨论】:
没想到这是数字显示器!
【讨论】:
八进制被更频繁使用的主要原因之一是八进制和二进制之间的转换比十六进制到二进制更容易:你只需要记住 8 个八进制数字的二进制表示(0- 7).
在过去,调试意味着从一排 LED 读取寄存器内容,或使用一系列拨动开关输入数据,这是一个大问题。许多这些早期计算机上的面板将 LED 和开关按三组分组以促进这一点。
但是,随着 8 位字节的倍数字长开始占优势,十六进制开始占上风,并且不再需要以二进制形式读取和输入数据(使用控制台文本 UI 和后来的 GUI 调试器)。
【讨论】:
如果鸟类可以数数,我猜它们会使用八进制数。虽然大多数鸟类的羽毛“手”上有 3 个手指,但大多数是Tetradactyly,这意味着每只脚上有 4 个脚趾。
【讨论】:
在航空电子设备中,ARINC 429 字标签几乎总是以八进制表示。
【讨论】:
音乐,只要你远离(大多数)升号和降号。
【讨论】:
仅供参考,windows 和 javascript 有几个地方会自动决定以零为前缀的数字是八进制并转换数字。
在 windows 中,如果你 ping 和地址像 10.0.2.010 它实际上会 ping 10.0.2.8
如果您将其输入为计算机的 ip/dns 地址,Windows 也会执行此操作
虽然它已被弃用,但如果您不指定基数 http://www.w3schools.com/jsref/jsref_parseint.asp,Javascript 默认会在某些函数(如 parseInt)上执行此操作
【讨论】:
inet_addr() 的东西都会表现出这种记录在案的行为。