【问题标题】:Why is the number understood in hectadecimal?为什么数字是十六进制的?
【发布时间】:2013-12-31 05:28:42
【问题描述】:

在 C++ 中,如果你执行 cout

【问题讨论】:

标签: c++


【解决方案1】:

如果您在号码前加上 0,它将是八进制或以 8 为基数。

如果您在号码前加上 0x,它将是十六进制或以 16 为基数。

不知道'110进制'(base 110)的前缀是什么,我觉得没有

【讨论】:

    【解决方案2】:

    前导“0”表示数字是八进制。

    #include <iostream>
    
    int main( int, char ** )
    {
    std::cout << 0x10 << std::endl;
    std::cout << 020 << std::endl;
    std::cout << 16 << std::endl;
    
    return( 0 );
    }
    

    全部产生 16 的输出。数字是具有相同值的文字。

    【讨论】:

    • 不是流媒体运营商明白这一点。流媒体运营商&lt;&lt; 只看到一个数字。 编译器确定整数常量047是八进制并相应地创建一个值。
    • @EricFinn:编译器在这件事上别无选择。语言的词汇规则规定了这种行为。
    • @KerrekSB 是的,我并没有暗示其他意思。我只是想强调 operator&lt;&lt; 与文字 047 的解释方式完全无关。
    • @EricFinn:当然。今天我要从不纯粹的思想中剔除纯粹的思想,努力修剪一切不相关的东西,分散那些寻求启蒙而不是纠缠的学生的注意力:-)
    猜你喜欢
    • 1970-01-01
    • 2016-11-12
    • 1970-01-01
    • 2011-02-09
    • 2015-11-07
    • 2020-07-23
    • 2023-04-09
    • 1970-01-01
    • 2020-06-13
    相关资源
    最近更新 更多