我知道mod运算符会找到两个数字的余数。但是,当数字颠倒时,我无法理解这个概念。意思是,较小的数字在操作中排在第一位。
int x = 4 % 3 ; // prints out 1
但是,有人可以向我解释一下:
int y = 1 % 4 ; // prints out 1
int z = 2 % 3 ; // prints out 2
提前致谢!
答案 0 :(得分:1)
操作员的左侧是否大于右侧是无关紧要的。对于任何除法运算总有一个余数,它只是有时它是0.
所以5 % 2
返回1
,就像4 % 3
返回1一样。
对于正x % n
,n - 1
形式的任何模运算的值将为0到x
。对于否定-1(n-1)
,它将为x
至0。
答案 1 :(得分:0)
你确定打印出2的内容吗?
int z虽然看起来很正常: 2 = 0 * 3 + 2
int y = 1%4应该打印1,因为: 1 = 0 * 4 + 1
它的作用与第一个较大的数字相同时的效果相同,只需将第一个除法的余数除以第二个。