Toán tử logic phần 2
Thuộc phần Nền tảng cơ bản trong hành trình C của Coddy. Bài học 22 trên 63.
Các toán tử logic có một bảng đặc biệt gọi là “bảng chân trị”, cho biết kết quả trả về của các tổ hợp toán tử logic.
Bảng chân trị của toán tử and (&&):
| a | b | a && b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
Cách duy nhất để nhận được 1 (đúng) với toán tử and (&&) là cả a và b đều bằng 1 (đúng)
Bảng chân trị của toán tử or (||):
| a | b | a || b |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Trong trường hợp này, để nhận được kết quả 1 (đúng), a hoặc b phải là 1 (đúng).
Bảng chân trị của toán tử not (!):
| a | !a |
|---|---|
| 0 | 1 |
| 1 | 0 |
Ở đây, giá trị của a bị đảo ngược. Nếu a là 0 (sai) thì !a là 1 (đúng).
Thử thách
DễBạn cần gán các giá trị số nguyên cho biến b1 và b2 để b3 nhận giá trị 1 (đúng) trong biểu thức: int b3 = !((b1 + b2) > (b1 * b2));
Hãy dành chút thời gian phân tích điều kiện và suy nghĩ xem những giá trị nào sẽ khiến điều kiện đúng.
Tự làm thử
#include <stdio.h>
int main() {
// Viết code của bạn bên dưới
int b1 = ?;
int b2 = ?;
int b3 = !((b1 + b2) > (b1 * b2));
// Đừng thay đổi dòng bên dưới
printf("b3 = %d\n", b3);
return 0;
}Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tất cả bài học trong Nền tảng cơ bản
2Biến
Kiểu dữ liệuSố nguyênSố thực - DoubleKý tựGiá trị BooleanHằng sốCơ bản về printfQuy tắc đặt tên biếnChuyển đổi kiểu phần 1Chuyển đổi kiểu phần 2Thử thách ôn tậpTự luyện tập: Trình biên dịch C online