8
votes

Priorité des opérateurs logiques avec NAND, ni xnor

J'ai fouillé sur le Web mais j'ai trouvé aucune solution à ce problème.

Quelle est la priorité logique pour les opérateurs NAND , ni et et Xnor ?

Je veux dire, considérant comme exemple l'expression xxx

quel opérateur doit être évalué en premier? de
Évidemment NAND peut être traduit sous forme non-et (comme ni est non ou et xnor < / code> est non-xor ), mais xxx

selon mes recherches, il n'y a pas une priorité définie pour une telle expression, alors je pense que la La solution la plus simple consiste à évaluer les opérateurs en fonction de la commande qu'ils apparaissent dans l'expression, mais je me trompe peut-être.

Toute suggestion?


0 commentaires

5 Réponses :


1
votes

Si l'expression est écrite comme si elle est mentionnée dans la question (sans supports entre les deux), elle devrait être résolue dans l'ordre dans lequel ils sont écrits. C'est le seul moyen correct de le faire. par exemple. Si sa ligne écrite A NOR B XOR C , cela signifie simplement (A NOR B) XOR C


0 commentaires

1
votes

La priorité de l'opérateur doit être définie par une langue et ce que vous avez ici ne semble pas être une langue formelle, dans de tels cas, il est souvent supposé être évalué que vous lisez de gauche à droite.

Cependant, vous pouvez utiliser le même opérateur selon la précédente que Verilog ou regarder Wikipedia qui a une petite table selon la précédente couramment utilisé pour les opérateurs logiques


0 commentaires

3
votes

Cela dépend effectivement de votre Règles de priorité . S'il n'y a pas d'ordre (aucune règle de prévention ou tout de même importance), il devrait être résolu de gauche à droite. ici est un exemple avec C ++.


0 commentaires

0
votes

Je suppose que cela pourrait être spécifique de la langue, tous les opérateurs doivent avoir une ordonnance de priorité définie ou implicite par une implation spécifique.

ici est ce qu'un autre site doit en dire à ce sujet.


0 commentaires

0
votes

Les opérateurs booléens ont des analogues dans des arithmétiques conventionnels. Un moyen de décider de quoi les règles de la présence devraient être consiste à suivre les règles d'arithmétique conventionnelle, par exemple. et est analogue à la multiplication, tandis que ou est analogue à l'addition, donc et doit avoir une priorité plus élevée que ou . Si vous regardez la table de prime de l'opérateur pour une langue telle que C ou C ++, vous verrez que c'est effectivement le cas dans ces langues connexes et autres.


0 commentaires