2017-04-12 189 views
0
int a=032302; 
cout<<a%10<<endl; // output 6 
int b=32302; 
cout<<b%10<<endl; // output 2 

我正試圖獲得該單元的地方了一些,但同時編碼我發現了一個奇怪的事情,第一和第二沒有在技術上是相同的,但它們都輸出不同的結果。模返回不同的結果

第一個返回6而第二個2,我在這裏丟失了什麼?

+3

字面在底座8 –

+2

基地8,其實。 – hlt

+0

對,糾正。 –

回答

3

在c/C++中以0(零)開始一個數字意味着它是一個八進制數(基數爲8)的數字。因此032302以十進制表示法爲13506。因此,最後一位數字是6,這就是你從模數運算中得到的結果。

1

考慮到

int a = 032302; 

int b = 13506; 

都保持自變量一個相同的整數值的事實是init爲八進制文字

然後是正確的

一%10只返回6相同B%10點返回以 '0' 編號的6個