首页 > 后端开发 > C++ > 为什么'0123”在 C/C 中打印为'83”?

为什么'0123”在 C/C 中打印为'83”?

DDD
发布: 2024-11-14 18:24:02
原创
982 人浏览过

Why does

了解 C/C 中带前导零的数字常量

在 C/C 中,数字常量可以以前导“0”作为前缀来指示它们的基数或数字系统。此前缀表示该常量是八进制(以 8 为基数)值。

当您使用“0123”作为整数常量时,编译器会将其解释为八进制值。在八进制数字系统中,“123”代表十进制值 83 (881 3)。因此,当您打印该值时,它会输出 83 而不是 123。

此行为在 C 和 C 编译器(例如 GCC)中是一致的。它也适用于以“0”为前缀的浮点常量,尽管转换规则可能略有不同。

要显式指定数字常量的基数,您可以使用以下前缀:

  • '0':八进制(以 8 为基数)
  • '0x' 或 '0X':十六进制(以 8 为基数) 16)
  • 无前缀:十进制(以 10 为底)

例如,要将十进制值 123 表示为八进制常量,您可以使用“0123”。相反,要将八进制值 83 表示为十进制常量,您可以使用 83。

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

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