2010-06-24 11 views

Répondre

33

Cela dépend de la langue, mais dans les langues de style C % est le même precedence que * et /. Cela signifie que s'il apparaît dans la même expression (sans parenthèses), l'ordre dépend du associativity. Dans ce cas, % est généralement associé à gauche, de sorte que les opérateurs seront exécutés dans l'ordre de gauche à droite.

+0

a% b == ((a/b) -floor (a/b)) * b // Utilise une combinaison de multiplication, division, soustraction et fonction de plancher: o –

5

Au moins en C++ et Java, modulo (%) a le même niveau de priorité que la multiplication et la division.

Puisque %, / et * sont (généralement) associatifs à gauche, ils sont évalués de gauche à droite.

(Merci à Mark pour remarquer operator associativity)

+2

'En l'absence de parenthèses, les opérateurs du même niveau de priorité sont tout simplement évalué de gauche à droite. »Pas toujours. Voir Associativité de l'opérateur: http://en.wikipedia.org/wiki/Operator_associativity –

0

L'opérateur modulo%, tel qu'il est utilisé dans de nombreux langages de programmation informatique, n'est pas commun en mathématiques pures. Il s'agit donc plutôt de savoir comment l'opérateur est traité dans les langages de programmation, et cela diffère selon les langages.

6

Si votre question porte sur les langages de programmation alors oui,% a le même ordre que * et/

Voir this table.

+2

Bon pour savoir la plupart des langues ont tendance à suivre le même standard. – Mau

+0

Je downvote si je pouvais. Le lien pourrait pourrir à tout moment au gré des éditeurs/modérateurs wikipedia. Meher est bien meilleur. –

0

Pour C++, il a la même priorité que la multiplication et la division. Prenez-les comme ils viennent, de gauche à droite.