在Java编程语言中,除法运算除了可以得到商以外,还可以得到余数和模。这两者看起来很相似,但实际上有很大的区别。
首先,先来看一下求余的运算符——%
。它可以得到两个操作数做除法后的余数,比如:
int a = 10 % 3; // 得到的值是1
这里的10是被除数,3是除数,得出的余数是1。与求商不同的是,求余运算并不关心两个数之间的整除关系,只要能除得尽就求其余数。
接着,再看一下求模的运算符——Math.floorMod()
。它与求余类似,但一个重要的区别是在于对于负数的处理方式。在求余运算的情况下,余数的符号与被除数相同。而求模则是保证余数的符号与除数相同。比如:
int b = 10 % -3; // 得到的值是1 int c = Math.floorMod(10, -3); // 得到的值是-2
在上面的例子中,求余运算10除以-3得到的余数为1,但当使用Math.floorMod()来计算时,则把负号移至了2上,使得余数的符号和除数保持一致。
综上所述,虽然求余和求模的功能看似相同,但实际上有很大的区别。程序员在使用时需要根据实际情况来进行选择。