qDebug打印错误的数字

Kel*_*inS 1 c++ qstring qt qdebug

我只是想用qDebug以下方法打印一个数字:

qDebug() << QString::number(03001);
Run Code Online (Sandbox Code Playgroud)

但结果是:

"1537"
Run Code Online (Sandbox Code Playgroud)

如果我尝试打印没有第一个零:

qDebug() << QString::number(3001);
Run Code Online (Sandbox Code Playgroud)

结果是正确的:

"3001"
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

我正在使用Qt 5.3.

AMA*_*AMA 5

前导零将使数字被解释为八进制文字.

八进制文字是数字零(0)后跟零个或多个八进制数字(0,1,2,3,4,5,6,7)

所以这不是与qDebug有关的任何方式,而是与C++解释整数常量的方式有关.