为什么当无符号数字从''''至' 0437' cout声明?当我把437的cout显示437时,但当我使用' 0437'它显示了''''为什么会这样?
int main()
{
unsigned number = 437;
cout<<number<<endl;
return 0;
}
答案 0 :(得分:2)
因为八进制文字表示的值在标准输出上打印为十进制值。如果要输出八进制文字值,则应使用std::oct流操作符:
std::cout << std::oct << number;
整数值由integer literals表示。它们可以是八进制,如0437
,十进制,如287
或十六进制,如0x11f
,从C ++ 14开始,它们可以是二进制文字,如0b100011111
。所有这些文字代表相同的值。