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

  • 本文关键字:数字 显示 结果 无符号 c++
  • 更新时间 :
  • 英文 :


为什么当无符号数字从'437'到'0437'cout语句时,这个程序显示2个不同的数字? 当我输入 437 时,cout 显示 437,但当我使用"0437"时,它显示"287"。为什么会这样?

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

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

std::cout << std::oct << number;
整数

值由整数文本表示。它们可以是八进制(例如 0437(、十进制(例如 287(或十六进制(例如 0x11f(,截至 C++14,它们可以是二进制文字,例如 0b100011111 。所有这些文本都表示相同的值。

最新更新