相同数量的模数返回不同的结果

时间:2017-04-12 15:02:45

标签: c++

int a=032302;
cout<<a%10<<endl; // output 6
int b=32302;
cout<<b%10<<endl;  // output 2

我试图获得单位的数字位置但是在编码时我发现了一个奇怪的东西,第一个和第二个在技术上是相同的,但它们都输出不同的结果。

第一个返回6而第二个返回2,我在这里遗漏了什么吗?

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

考虑到事实

int a = 032302; 

int b = 13506;

保持相同的整数值,因为变量 a 是init为八进制文字

然后是正确的

a%10 返回6与 b%10 相同,返回6

相关问题