language-agnostic - 是否应在编程语言中删除或更改隐式八进制编码?

标签 language-agnostic types

我在看 this问题。基本上有一个前导零会导致数字被解释为八进制。我用多种语言多次遇到过这个问题。

为什么该语言不明确要求您使用函数调用或类型(在强类型语言中)指定八进制,例如:

oct variable = 2;

我能理解为什么十六进制(0x0234)有这种格式。十六进制非常有用。数据库中的整数永远不会包含 x。

但是八进制数 0123 看起来像整数,处理起来很麻烦。我从来没有用过八进制。

谁能解释一下这种用法背后的基本原理?这只是一些历史问题吗?

最佳答案

它在很大程度上具有历史意义。我见过的最好的解决方案是在新版本的 Python 中,其中八进制用特殊的前缀字符“o”表示,很像十六进制的“x”前缀:

0o10 == 0x8 == 8

关于language-agnostic - 是否应在编程语言中删除或更改隐式八进制编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1280148/

相关文章:

unit-testing - 程序崩溃时如何终止程序? (这应该只是通过单元测试而不是永远卡住)

sql - 如何连接 Postgres SELECT 中的列?

winapi - 将 `Ex`添加到函数/方法名称是什么意思?

language-agnostic - 如何将重力应用于我的弹跳球应用程序?

scala - Scala 中的高级类型是什么?

php - 可捕获的 fatal error :传递给 Foo::bar() 的参数 1 必须实现接口(interface) BazInterface,给定为空

Laravel 模型项目设置碳项目但返回字符串

c - 寻找从魔数(Magic Number)确定文件类型

language-agnostic - 如何找到方形图案角的像素坐标?

language-agnostic - "temp"是一个好的变量名吗?