模返回不同的结果

问题描述:

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

对,纠正。 –

在c/C++中以0(零)开始一个数字意味着它是一个八进制数(基数为8)的数字。因此032302以十进制表示法为13506。因此,最后一位数字是6,这就是你从模数运算中得到的结果。

考虑到

int a = 032302; 

int b = 13506; 

都保持自变量一个相同的整数值的事实是init为八进制文字

然后是正确的

一%10只返回6相同B%10点返回以 '0' 编号的6个