【发布时间】:2017-08-02 09:27:05
【问题描述】:
我有以下代码:
int ret() {
int x = 010;
int y = 4;
int z = x | y;
return z;
}
当 x = 010 时,此函数返回 12。但是,将 x 更改为 10 时,返回 14。为什么会这样?
【问题讨论】:
-
二进制整数文字是在 C++14 中引入的,并使用前缀
0b。如0b10中的整数值 2。 -
很遗憾,
0o没有在 C++14 中用于八进制文字,并着眼于在未来的标准中弃用没有o的领先0。 -
很遗憾八进制文字没有被彻底弃用。我也许可以和
10_octal一起生活。 -
另一个可能的欺骗目标:stackoverflow.com/q/26568200/1896169。 stackoverflow上有很多这样的问题
标签: c++