首页 > Java > java教程 > 为什么 Java 中'0123'打印'83'?

为什么 Java 中'0123'打印'83'?

Patricia Arquette
发布: 2024-12-27 13:14:10
原创
825 人浏览过

Why Does `0123` Print `83` in Java?

前导零会混淆整数解释

处理整数文字时,前导零的存在可能会产生意想不到的后果。考虑以下代码:

System.out.println(0123); // prints 83
System.out.println(123);  // prints 123
登录后复制

为什么第一行打印 83 而不是 123?关键在于前导零。

八进制解释

整数文字中的前导零表示该数字以八进制(以 8 为基数)表示。要将八进制数转换为十进制数,请将每个数字从右到左乘以适当的 8 次方,然后对结果求和。

对于 0123,我们有:

(1 * 8 * 8) + (2 * 8) + (3) = 83
登录后复制

因此,0123 被解释为十进制值 83。

为什么没有八进制浮点数?

奇怪的是,Java 不允许八进制浮点文字,因此此行为仅适用于整数。

最佳实践

为了避免混淆,通常建议避免在整数文字中使用前导零,除非您特别希望将数字解释为八进制。

以上是为什么 Java 中'0123'打印'83'?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板