btvn.vn
Tìm kiếm Đăng nhập

Dữ liệu lôgic và các phép toán

Lưu trên thiết bị này
Biểu diễn thông tin — Khoa học máy tính · Chọn bài khác

Bốn phép toán trên hai giá trị

Trong bài, `1` biểu diễn **đúng**, `0` biểu diễn **sai**. `AND` đúng khi **cả hai** đúng; `OR` đúng khi **ít nhất một** đúng; `XOR` đúng khi **chỉ một trong hai** đúng; `NOT` đổi đúng thành sai và ngược lại. | p | q | p AND q | p OR q | p XOR q | NOT p | |---:|---:|---:|---:|---:|---:| | 0 | 0 | 0 | 0 | 0 | 1 | | 0 | 1 | 0 | 1 | 1 | 1 | | 1 | 0 | 0 | 1 | 1 | 0 | | 1 | 1 | 1 | 1 | 0 | 0 | Điểm dễ nhầm: `OR` **bao gồm** trường hợp cả hai đúng, còn `XOR` thì loại trường hợp đó.

Bài luyện

Với p = 1 và q = 1, cặp kết quả (p OR q, p XOR q) là gì?
Chọn một đáp án

Dùng ngoặc để thấy thứ tự

Giả sử `p = 1`, `q = 0`, `r = 0`. Với `p AND (q OR r)`, tính trong ngoặc trước: `0 OR 0 = 0`; sau đó `1 AND 0 = 0`. Dấu ngoặc cho biết thứ tự rõ ràng khi biểu thức có nhiều phép toán; không cần đoán thứ tự của ngôn ngữ lập trình khác.

Bài luyện

Cho p = 1, q = 0, r = 1. Giá trị của p AND (q OR r) là gì?
Chọn một đáp án

Mở rộng lên các dãy bit

Với hai dãy **cùng độ dài**, thực hiện phép lôgic trên từng cặp bit ở cùng vị trí. Ví dụ `1010 OR 0011` cho `1011`: vị trí lần lượt là `1 OR 0`, `0 OR 0`, `1 OR 1`, `0 OR 1`. Đây là **OR theo bit**, không phải phép cộng số nhị phân: phép cộng có thể tạo bit nhớ, còn OR không có bit nhớ.

Bài luyện

Kết quả của `1010 AND 1100` theo từng bit là gì?
Chọn một đáp án

Đang học