回答
它是modulus运算符,如前所述,它返回除法运算的其余部分。
实例:3%5
返回图3,作为3除以5是0与3。
5 % 10
返回5剩余部分,由于相同的原因,10进入5倍零用的5
10 % 5
返回0,因为除以5的10次精确地2次而没有余数。
在您发布的例子,(3 - 2 + 7)
工程以8,给你8 % 7
,所以$number
会1
,这是的8/7剩余部分。
这是modulus操作。在声明$a % $b
结果是剩余时$a
由$b
划分它是modulus operator:
=余的$a
$a % $b
除以$b
。
它通常用于获得“每N个元素中的一个元素”。例如,只得到一个元素每三个要素:
for ($i=0 ; $i<10 ; $i++) {
if ($i % 3 === 0) {
echo $i . '<br />';
}
}
它得到这样的输出:
0
3
6
9
(是啊,OK,$i+=3
会做的伎俩,但是这只是一个演示)
使用该运营商可以很容易地计算出奇数或偶数天月例如,如果需要安排什么:
<?php echo (date(j) % 2 == 0) ? 'Today is even date' : 'Today is odd date'; ?>
%
意味着模量。
模数是数学中“除数余数”的奇特名称。
(numerator) mod (denominator) = (remainder)
在PHP
<?php
$n = 13;
$d = 7
$r = "$n % $d";
echo "$r is ($n mod $d).";
?>
在这种情况下,该脚本会响应
6 is (13 mod 7).
哪里$r
是余数(答案),$n
的分子和$d
分母。由于其特殊的特性,模数运算符在public-key cryptography中通常用作one-way function。
既然有这么多人说“模数找到了除数的余数”,那么让我们开始定义一个余数是多少。
在数学中,余数是 执行一些计算后的“剩余”量。在算术运算中,余数是 整数在将一个整数除以另一整数以产生整数商(整数除法)的 之后的“剩余”。
参见:“分割后如何除数的很多遗留下来的” http://en.wikipedia.org/wiki/Remainder
所以模量要求,一个简单的方法
要使用的(3 - 2 + 7) = 8 % 7 = 1
的OP的计算:
可以细分为:
0.14(3 - 2 + 7) = 8 8/7 = 1.143 #Rounded up .143 * 7 = 1.001 #Which results in an integer of 1
7可以进入8 1时间7剩余
这就是它的全部。我希望这有助于简化模数的工作方式。
使用不同除数与21击穿21 % 3 = 0
的
击穿的其它实例:
21/3 = 7.0 3 * 0 = 0
(3可以进入21 7次,0的3剩)
21 % 6 = 3
击穿的:
21/6 = 3.5 .5 * 6 = 3
(6可进入21 3次0.5的6剩)
21 % 8 = 5
:
21/8 = 2.625 .625 * 8 = 5
(8可以进入21 2次0.625 8剩)
@zombat - 10%5是0至10除以5是2具有0模的剩余部分是剩余分工操作。 – 2009-12-19 21:30:12
是的,我在这里有严重的复制/粘贴问题。已经抓住了那一个:) – zombat 2009-12-19 21:31:41
非常感谢你把它放在我的理解! – David 2010-02-11 04:07:14