5 / 63 · Khái niệm
XOR, XNOR: giống, khác và parity
Phân biệt XOR hai đầu vào với parity nhiều đầu vào và giải thích giới hạn phát hiện lỗi.
Bài học miễn phí. Đăng ký để lưu tiến độ học tập.
Cổng hỏi hai bit có khác nhau không
XOR bằng 1 khi hai đầu vào khác nhau; XNOR bằng 1 khi chúng giống nhau.
OR và XOR giống nhau ở 00, 01, 10 nhưng khác ở 11. Ký hiệu XOR có thêm một đường cong trước ký hiệu OR; XNOR còn có vòng tròn đảoPhủ định Phép NOT đổi 0 thành 1 và 1 thành 0. Gạch trên biểu thức nghĩa là áp dụng NOT cho toàn bộ phần nằm dưới gạch. Tìm hiểu thêm ở đầu ra.
| a | b | y |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
Từ ba đầu vào trở lên, không phải “đúng một”
XOR có tính kết hợp, nên có thể tính lần lượt . Kết quả bằng 1 khi số đầu vào bằng 1 là số lẻ. 111 cũng cho 1, nên không thể mở rộng mô tả “đúng một đầu vào bằng 1” cho nhiều đầu vào.
Đầu ra sum của bộ cộng đầy đủ chính là tính chẵn lẻTính chẵn lẻ Giá trị cho biết số bit 1 là chẵn hay lẻ. Kiểm tra parity phát hiện số lẻ lỗi bit nhưng có thể bỏ sót số chẵn lỗi. ba đầu vào này; cout cho biết có ít nhất hai bit 1. Tạo 111 bên dưới: sum=1, cout=1 và tổng số nguyên là .
a + b + cin = sum + 2 × cout
Parity chỉ phát hiện một số loại lỗi
Với dữ liệu , bit parity chẵn là . XOR dữ liệu cùng p cho 0. Nếu số lẻ bit bị đảo trong truyền dẫn, XOR tổng đổi thành 1 nên phát hiện được. Số chẵn bit đảo có thể không bị phát hiện; một bit parity cũng không chỉ ra vị trí lỗi.
So sánh hai chuỗi bit có giống nhau không
Có thể kiểm tra A và B bằng nhau bằng cách OR các kết quả XOR theo từng bit.
Chỉ cần một bit không khớp thì OR bằng 1. Đảo toàn bộ sẽ cho 1 chỉ khi mọi bit đều khớp. Nếu dùng XOR để gộp tất cả kết quả XOR khi kiểm tra bằng nhau, hai bit không khớp có thể triệt tiêu nhau và gây sai.
Tự thử
Với A=1010, B=1001, tìm chuỗi XOR và kết quả equality. Điều gì sai nếu tiếp tục rút gọn chuỗi XOR bằng phép XOR để quyết định “bằng nhau”?
Đọc giải thích
Chuỗi XOR là 0011, kết quả bằng nhau là 0. XOR hai bit không khớp làm chúng triệt tiêu thành 0; đảo kết quả sẽ sai thành bằng nhau=1. Vì vậy phải rút gọn các bit không khớp bằng OR.