-4

我对1% 2将是 1 的逻辑感到困惑。因为据我所知,1/20,所以没有余数。

4

7 回答 7

4

%返回 的余数a / b

>>> 1 % 2
1
>>> 1/2
0
>>> 1 - 0
1

此外,模表达式可以表示为:

r = a - nq

其中 q 是floor(a/n)。所以:

>>> import math
>>> 1 - 2 * math.floor(1/2)
1.0
于 2013-06-26T02:44:14.563 回答
4

1/2 为 0,余数为 1。% 运算符返回该余数。

于 2013-06-26T02:44:54.547 回答
3

% 是模运算符。它返回左手边除以右手边后的余数。由于 2 将 0 除为 1,因此余数为 1。

一般来说,如果a和b都是正整数,并且a < b,那么a % b == a。

不过,参数不必是整数。更多详细信息可从 python 参考文档 ( http://docs.python.org/2/reference/expressions.html ) 中获得:

%(取模)运算符产生第一个参数除以第二个参数的余数。数字参数首先转换为通用类型。零右参数引发 ZeroDivisionError 异常。参数可以是浮点数,例如,3.14%0.7 等于 0.34(因为 3.14 等于 4*0.7 + 0.34。)模运算符总是产生与第二个操作数(或零)具有相同符号的结果。结果的绝对值严格小于第二个操作数的绝对值 [2]。

整数除法和取模运算符通过以下恒等式连接:x == (x/y)*y + (x%y)。整数除法和取模也与内置函数 divmod() 相连:divmod(x, y) == (x/y, x%y)。这些恒等式不适用于浮点数;在 x/y 被 floor(x/y) 或 floor(x/y) - 1 [3] 替换的情况下,类似的恒等式近似成立。

于 2013-06-26T02:48:26.277 回答
2

当然还有余数。你能从 1 中得到多少个 2?其中 0 个,剩余 1 个。

于 2013-06-26T02:46:37.110 回答
2

Ok, the answer has been posted like 6 times already, just adding this for completeness, If there's one way to understand modulo (%), it's converting from base 10 to base 2, 1 can't be divided by 2 so we leave it alone (get a remainder of 1). You can imagine the binary numbers in the third column to be the results of a modulo operation.

eg. 9 (base 10) to (base 2)..

2 | 9 | 1  
2 | 4 | 0  
2 | 2 | 0  
2 | 1 | 1 
于 2013-06-26T02:52:17.090 回答
1

2*0 为 0,因此余数为 1

如果问题是找到 m%n

我们找到最小或等于 q 使得 n*(一些整数) = q 并且 q<=m 我们然后找到 (mq) 这是余数..

于 2013-06-26T02:43:53.637 回答
1

运营商在做什么%

a % b等于一个值c,例如0 <= c < b并且存在一个数字k,使得b * k + c = a.

于 2013-06-26T02:46:51.063 回答