2009-12-19 147 views

回答

73

它是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,所以$number1,这是的8/7剩余部分。

+1

@zombat - 10%5是0至10除以5是2具有0模的剩余部分是剩余分工操作。 – 2009-12-19 21:30:12

+0

是的,我在这里有严重的复制/粘贴问题。已经抓住了那一个:) – zombat 2009-12-19 21:31:41

+0

非常感谢你把它放在我的理解! – David 2010-02-11 04:07:14

12

这是modulus操作。在声明$a % $b结果是剩余时$a$b

17

划分它是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会做的伎俩,但是这只是一个演示)

4

使用该运营商可以很容易地计算出奇数或偶数天月例如,如果需要安排什么:

<?php echo (date(j) % 2 == 0) ? 'Today is even date' : 'Today is odd date'; ?> 
1

%意味着模量。

模数是数学中“除数余数”的奇特名称。

(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

3

既然有这么多人说“模数找到了除数的余数”,那么让我们开始定义一个余数是多少。

在数学中,余数是 执行一些计算后的“剩余”量。在算术运算中,余数是 整数在将一个整数除以另一整数以产生整数商(整数除法)的 之后的“剩余”。

参见:“分割后如何除数的很多遗留下来的” http://en.wikipedia.org/wiki/Remainder

所以模量要求,一个简单的方法

要使用的(3 - 2 + 7) = 8 % 7 = 1的OP的计算:

可以细分为:

(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剩余

0.14

这就是它的全部。我希望这有助于简化模数的工作方式。


使用不同除数与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剩)