c++ - 谁需要八进制表示?

标签 c++ c octal representation

<分区>

根据我的理解,数字中的八进制数字映射到 3 位段,永远不会真正表示 2^n 长度的二进制字符串。

出于好奇,这何时/为什么/如何有用? :-)

..如果架构中单词的主要表示的基数是 2 的质数(!) 次方,至少确保它是甚至 ;-)。

最佳答案

八进制可以精确表示任意长度的二进制字符串。 虽然确实有 8 位字节和字节寻址, 十六进制似乎更自然。然而,从历史上看……

  • 很多机器有 36 位字,其中八进制产生了很多 感觉,和

  • 在 PDP-11(第一个 C 编译器运行的平台)上, 机器指令分为 3 个位组:高位 位来标记操作是字节还是字,然后 一个 3 位操作码和两个 6 位地址,第一个 3位寻址方式,后3位寄存器 参与。

在C刚被发明的时候,八进制大概是 比十六进制更频繁地使用,所以作者 为其提供的语言。 (我不记得实际看过它 然而,在最近的代码中使用了很长时间。)

关于c++ - 谁需要八进制表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332815/

相关文章:

string - 将八位字节字符串转换为 Unicode 字符串,Python 3

c++ - MFC LoadStringW 不是没有从字符串表中正确加载日文字符串

c - 程序执行时停止(文件处理)

c++ - 如何让 `static_assert` 打印失败时得到的值?

c - 如何执行 shell 脚本或可执行文件?

c - 在不使用乘法的情况下获取数字的阶乘

c - 打印时错误地将宏转换为 int

java - 如何在不使用 API 的情况下将八进制转换为不同形式的十进制?

c++ - 如何使用 C++ 返回一个抽象类

c++ - 指向 STL 容器的指针安全吗?