当零号附加到数字时,无符号数字会显示不同的结果

时间:2018-03-21 21:07:21

标签: c++

为什么当无符号数字从''''至' 0437' cout声明?当我把437的cout显示437时,但当我使用' 0437'它显示了''''为什么会这样?

int main()
{
    unsigned number = 437;
    cout<<number<<endl;
    return 0;
}

1 个答案:

答案 0 :(得分:2)

因为八进制文字表示的值在标准输出上打印为十进制值。如果要输出八进制文字值,则应使用std::oct流操作符:

std::cout << std::oct << number;

整数值由integer literals表示。它们可以是八进制,如0437,十进制,如287或十六进制,如0x11f,从C ++ 14开始,它们可以是二进制文字,如0b100011111。所有这些文字代表相同的值。