我在看 this问题。基本上有一个前导零会导致数字被解释为八进制。我用多种语言多次遇到过这个问题。
为什么该语言不明确要求您使用函数调用或类型(在强类型语言中)指定八进制,例如:
oct variable = 2;
我能理解为什么十六进制(0x0234)有这种格式。十六进制非常有用。数据库中的整数永远不会包含 x。
但是八进制数 0123 看起来像整数,处理起来很麻烦。我从来没有用过八进制。
谁能解释一下这种用法背后的基本原理?这只是一些历史问题吗?
最佳答案
它在很大程度上具有历史意义。我见过的最好的解决方案是在新版本的 Python 中,其中八进制用特殊的前缀字符“o”表示,很像十六进制的“x”前缀:
0o10 == 0x8 == 8
关于language-agnostic - 是否应在编程语言中删除或更改隐式八进制编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1280148/