2011-11-17 39 views
5

我搜索了網頁,但是我找不到解決此問題的方法。邏輯運算符優先於NAND,NOR,XNOR

運營商NANDNORXNOR的邏輯優先級是什麼?

我的意思是,考慮到如實施例哪個操作員應首先計算的表達式

A AND B NAND C 


顯然NAND可以翻譯爲NOT-AND(如NORNOT-ORXNORNOT-XOR),但

(A AND B) NAND C != A AND (B NAND C) = A AND NOT(B AND C) 

根據我的研究,有沒有這樣的表達式定義的優先級,所以我覺得最簡單的解決方法是根據它們在表達式中出現的順序來評估操作員,但我可能是錯的。

有什麼建議嗎?

回答

3

一張小桌子優先這實際上取決於你的precedence rules。如果沒有秩序(沒有優先規則或者同樣重要的東西),它應該從左到右解決。 Here是C++的一個例子。

1

如果表達式的寫法與問題中提及的方式相同(中間沒有括號),則應按照它們寫入的順序來解決。這是做到這一點的唯一正確方法。 例如。如果其書面線A NOR B XOR C,它只是意味着(A NOR B) XOR C

0

運算符優先級必須由語言來定義,似乎你這裏有什麼不成爲一個正式的語言,在這種情況下,它經常假設被評估爲你從左至右閱讀。

雖然,你可以使用相同的運算符優先級的verilog,或看wikipedia其中有常用的邏輯運算符

0

我想這可能是語言特定的,所有操作符必須具有由特定實現定義或暗示的優先順序。其他網站不得不說的是,

0

布爾運算符在傳統算術中具有類似物,因此決定優先規則應該是什麼的一種方法是遵循常規算術的規則,例如, AND類似於乘法,而OR類似於加法,因此AND應該具有比OR更高的優先級。如果您查看諸如C或C++之類的語言的運算符優先級表,您會發現在這些和其他相關語言中確實如此。