首页 > 后端开发 > C++ > 正文

为什么 C/C 中'0123”的计算结果为 83 ?

Barbara Streisand
发布: 2024-11-18 10:13:02
原创
706 人浏览过

Why does `0123` evaluate to 83 in C/C  ?

在 C/C 中为数字常量添加“0”前缀

问题:

为什么C/C 中以“0”为前缀的整数常量的计算结果是否与预期值不同?例如,使用常量“0123”会得到值 83 而不是 123。

答案:

在 C/C 和其他编程语言中,数字常量可以使用不同的前缀来表示它们代表的数字基数。 “0”前缀表示八进制(基数为 8)常量。

当编译器遇到前缀为“0”的数字常量时,它会将其后面的数字解释为八进制数。对于“0123”,它被视为 (0 8^3) (1 8^2) (2 8^1) (3 8^0),其中计算结果为十进制 83。

这与 C/C 语言规范一致,该规范规定以“0”开头的数字常量被视为一个八进制数。此规则适用于整数和浮点常量。

理解数字前缀的作用对于在 C/C 程序中准确表示和解释数字数据至关重要。

以上是为什么 C/C 中'0123”的计算结果为 83 ?的详细内容。更多信息请关注PHP中文网其他相关文章!

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