int a=032302;
cout<<a%10<<endl; // output 6
int b=32302;
cout<<b%10<<endl; // output 2
我正試圖獲得該單元的地方了一些,但同時編碼我發現了一個奇怪的事情,第一和第二沒有在技術上是相同的,但它們都輸出不同的結果。模返回不同的結果
第一個返回6而第二個2,我在這裏丟失了什麼?
int a=032302;
cout<<a%10<<endl; // output 6
int b=32302;
cout<<b%10<<endl; // output 2
我正試圖獲得該單元的地方了一些,但同時編碼我發現了一個奇怪的事情,第一和第二沒有在技術上是相同的,但它們都輸出不同的結果。模返回不同的結果
第一個返回6而第二個2,我在這裏丟失了什麼?
在c/C++中以0(零)開始一個數字意味着它是一個八進制數(基數爲8)的數字。因此032302以十進制表示法爲13506。因此,最後一位數字是6,這就是你從模數運算中得到的結果。
考慮到
int a = 032302;
和
int b = 13506;
都保持自變量一個相同的整數值的事實是init爲八進制文字
然後是正確的
一%10只返回6相同B%10點返回以 '0' 編號的6個
字面在底座8 –
基地8,其實。 – hlt
對,糾正。 –