Modulo运算符使用前导零提供不同的结果

时间:2014-09-26 17:27:53

标签: c++ modulo

为什么:

int test() {
    return 00101 % 10;
}

返回5,同时:

int test() {
    return 101 % 10;
}

返回1?我无法想出解释。

3 个答案:

答案 0 :(得分:23)

0开头的整数文字,如

00101

实际上是八进制常量。

答案 1 :(得分:5)

00101是八进制值,十进制为65,因此返回5

答案 2 :(得分:0)

00101是八进制的,十进制数等于65,这就是模数运算符总是给出5的原因。 您可以在此链接http://www.rapidtables.com/convert/number/octal-to-decimal.htm

上执行八进制到十进制的转换