qDebug 打印出错误的数字
qDebug prints a wrong number
我只是尝试使用 qDebug
打印一个数字,如下所示:
qDebug() << QString::number(03001);
但结果是:
"1537"
如果我尝试在没有第一个零的情况下打印:
qDebug() << QString::number(3001);
结果正确:
"3001"
为什么会这样?
我正在使用 Qt 5.3。
03001 是 C++ 中的八进制数。
前导零将使数字被解释为 octal literal。
octal-literal is the digit zero (0) followed by zero or more octal digits (0, 1, 2, 3, 4, 5, 6, 7)
所以这与 qDebug 没有任何关系,但与 C++ 解释的方式有关 integer constants。
我只是尝试使用 qDebug
打印一个数字,如下所示:
qDebug() << QString::number(03001);
但结果是:
"1537"
如果我尝试在没有第一个零的情况下打印:
qDebug() << QString::number(3001);
结果正确:
"3001"
为什么会这样?
我正在使用 Qt 5.3。
03001 是 C++ 中的八进制数。
前导零将使数字被解释为 octal literal。
octal-literal is the digit zero (0) followed by zero or more octal digits (0, 1, 2, 3, 4, 5, 6, 7)
所以这与 qDebug 没有任何关系,但与 C++ 解释的方式有关 integer constants。