我理解模数17/12 = 5
。
为什么4+17 % 2-1
值为4
,(4+17) % 2-1
值为0
?
答案 0 :(得分:6)
运营商优先权。首先评估%
,所以
4 + 17 % 2 - 1
相当于
4 + (17 % 2) - 1
17%2 == 1
,其4+1-1
等于4
当您在其中放置括号时,您可以更改评估顺序:
(4+17) % 2 - 1
相当于
21 % 2 - 1
由于%
的优先级高于-
,因此产生
1 - 1
是0
答案 1 :(得分:0)
4+17 % 2-1
被解释为4+(17 % 2)-1
= 4 + 1 -1
= 4
(%运算符的优先级高于+
和-
)
(4+17) % 2-1
= 21 % 2 -1
= (21 % 2)-1
= 1-1
= 0