PDA

View Full Version : Hỏi về phép toán logic trong C



truongbeo
06-12-2005, 15:06
Sách em viết:
--------------------------
C sử dụng 3 phép toán logic:
1. Phép phủ định 1 ngôi: !
2. Phép và (and): &&
3. Phép hoặc (or): ||
VD:
3>7 có giá trị 0
7>3 có giá trị 1
3 && 7 có giá trị 1
115.6 có giá trị 0
--------------------------
"phép phủ định 1 ngôi" là sao? trong sách em thấy nhiều chỗ có nói tới "phép toán 1 ngôi" hay "phép toán 2 ngôi", vậy "1 ngôi" với lại "2 ngôi" nghĩa là sao? Khái niệm này em mới thấy lần đầu
còn cái dòng 3 và dòng 4 trong 4 dòng VD em không hiểu, nhờ giải thích giùm với

thewallfan
06-12-2005, 17:42
Khái niệm này xuất hiện nhiều trong toán học ,chúng ta đã được học từ bé rồi đấy.
Phép toán 2 ngôi là các phép toán có 2 toán hạng như phép cộng trừ nhân chia...
ví dụ phép cộng a+b là phép toán 2 ngôi với a,b là 2 toán hạng.
Phép toán 1 ngôi là các phép toán có 1 toán hạng như phép đảo dấu -a thì a là toán hạng duy nhất.
Đối với các phép toán logic thì cũng tương tự thế.

&& là phép toán logic AND thực ra dựa trên kiểu dữ liệu bool chỉ nhận 2 giá trị TRUE và FALSE nhưng trong C áp dụng cho tất cả các toán hạng kiểu nguyên.Phép toán này coi các giá trị nguyên khác không tương đương với giá trị TRUE và giá trị 0 ứng với FALSE và chỉ trả về 0 hoặc 1.

Nó khác với phép toán & là phép AND bit tức AND từng bit của 2 toán hạng với nhau.

vậy 3 && 7 = TRUE AND TRUE = TRUE = 1

truongbeo
06-12-2005, 21:16
Khái niệm này xuất hiện nhiều trong toán học ,chúng ta đã được học từ bé rồi đấy.
Phép toán 2 ngôi là các phép toán có 2 toán hạng như phép cộng trừ nhân chia...
ví dụ phép cộng a+b là phép toán 2 ngôi với a,b là 2 toán hạng.
Phép toán 1 ngôi là các phép toán có 1 toán hạng như phép đảo dấu -a thì a là toán hạng duy nhất.
Đối với các phép toán logic thì cũng tương tự thế.

&& là phép toán logic AND thực ra dựa trên kiểu dữ liệu bool chỉ nhận 2 giá trị TRUE và FALSE nhưng trong C áp dụng cho tất cả các toán hạng kiểu nguyên.Phép toán này coi các giá trị nguyên khác không tương đương với giá trị TRUE và giá trị 0 ứng với FALSE và chỉ trả về 0 hoặc 1.

vậy 3 && 7 = TRUE AND TRUE = TRUE = 1
hô hô, ra là đó gọi là phép toán 1 ngôi và 2 ngôi à, he he, thế mà em cứ tưởng cái gì đặc biệt chớ, chắc là do cách gọi khác nhau đó thôi, chứ em mới thấy khái niệm đó lần đầu
còn cái and mí lị true & false công nhận dễ hiểu ghê, hic, vậy mà mình còn đi hỏi, đúng là pó tay