2017-01-20 6 views
1

난 그냥 다음과 같이 qDebug를 사용하여 숫자를 인쇄하기 위해 노력하고있어 인쇄 :qDebug는 잘못된 번호

qDebug() << QString::number(03001); 

을하지만 결과는 다음과 같습니다

"1537" 

내가 처음 제로없이 인쇄하려고하면 :

qDebug() << QString::number(3001); 

결과는 올바른 :

"3001" 

왜 발생합니까?

Qt 5.3을 사용하고 있습니다.

+6

앞에 오는 0은 8 진수를 나타 내기 때문에 자세한 내용은 [정수 리터럴에 대한 참조] (http://en.cppreference.com/w/cpp/language/integer_literal)를 참조하십시오. – UnholySheep

답변

5

0으로 시작하면 숫자가 octal literal으로 해석됩니다.

진수 리터럴은 영 (0) 0 이상의 8 진수 하였다 (0, 1, 2, 3, 4, 5, 6, 7)

를 따라서이 아닌 숫자 인 어떤 방법 으로든 qDebug와 관련이 있지만, C++에서 해석하는 방법은 integer constants입니다.