2011-11-17 47 views
5

Tôi đã tìm kiếm trên web nhưng tôi không tìm thấy giải pháp cho vấn đề này.Ưu tiên toán tử logic với NAND, NOR, XNOR

Ưu tiên hợp lý cho nhà khai thác NAND, NORXNOR là gì?

Ý tôi là, xem xét làm ví dụ biểu thức

A AND B NAND C 

mà nhà điều hành nên được đánh giá đầu tiên?
Rõ ràng NAND thể được dịch là NOT-AND (như NORNOT-ORXNORNOT-XOR), nhưng

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

Theo nghiên cứu của tôi không có một ưu tiên được xác định cho một biểu thức như vậy, vì vậy tôi nghĩ rằng giải pháp đơn giản nhất là đánh giá các toán tử theo thứ tự chúng xuất hiện trong biểu thức, nhưng tôi có thể sai.

Mọi đề xuất?

Trả lời

3

Điều này thực sự phụ thuộc vào precedence rules của bạn. Nếu không có trật tự (không có quy tắc ưu tiên hoặc tất cả mọi thứ có cùng tầm quan trọng), nó phải được giải quyết từ trái sang phải. Here là một ví dụ với C++.

1

Nếu biểu thức được viết giống như cách nó được đề cập trong câu hỏi (không có dấu ngoặc ở giữa), nó phải được giải quyết theo thứ tự chúng được viết. Đó là cách chính xác để thực hiện điều này. ví dụ: Nếu dòng văn bản của nó là A NOR B XOR C, đơn giản chỉ có nghĩa là (A NOR B) XOR C

0

quyền ưu tiên của toán tử phải được định nghĩa bằng ngôn ngữ và những gì bạn có ở đây dường như không phải là ngôn ngữ chính thức, trong trường hợp này thường được đánh giá là bạn đọc từ trái sang phải.

Mặc dù, bạn có thể sử dụng được ưu tiên điều hành giống như verilog, hoặc nhìn vào wikipedia trong đó có một ưu tiên bàn nhỏ thường được sử dụng cho các nhà khai thác Logic

0

Tôi cho rằng điều này có thể là ngôn ngữ cụ thể, TẤT CẢ các toán tử phải có thứ tự ưu tiên được xác định hoặc ngụ ý bởi một hàm cụ thể.

Here là những gì một trang web khác phải nói về điều đó.

0

Toán tử Boolean có tương tự trong số học thông thường, do đó, một cách để quyết định các quy tắc ưu tiên phải là tuân theo các quy tắc cho số học thông thường, ví dụ: AND tương tự với phép nhân, trong khi OR tương tự như bổ sung, do đó AND phải có mức độ ưu tiên cao hơn OR. Nếu bạn nhìn vào bảng ưu tiên toán tử cho một ngôn ngữ như C hoặc C++, bạn sẽ thấy rằng đây thực sự là trường hợp trong các ngôn ngữ này và các ngôn ngữ liên quan khác.

Các vấn đề liên quan