【问题标题】:Why does Visual C++ give unexpected values when I try to give a number in binary notation?当我尝试以二进制表示法给出数字时,为什么 Visual C++ 会给出意外的值?
【发布时间】:2012-12-10 21:46:46
【问题描述】:

在 VC++ 9 中尝试这样的东西:

int base = 0010;

然后在调试器中我看到它等于十进制的 8。我不明白。

我认为如果我在数字前显式使用 000,VC++ 会将其解释为二进制格式的数字。

二进制的0010是十进制的2(像往常一样从右到左读取数字基数)。

0 -> 0

0 -> 1

10 -> 2

那么为什么在这样的定义之后 VC++ 显示 0010 是十进制的 8 呢?

如果十进制的 8 等于 bin 中的 1000?

【问题讨论】:

    标签: binary numbers integer bit-manipulation decimal


    【解决方案1】:

    0010 是八进制文字(因为它以 0 开头)。八进制是 10,十进制是 8

    【讨论】:

    • 啊!!!非常感谢。我尝试将 0b 用作 bin-value 的格式,但编译器返回了错误。 VC++ 是否支持 bin 格式?谢谢
    • 使用 VC++ 9 没有。使用支持用户定义文字(C++11 特性)的编译器是的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多