3. Addition

Mạch cộng nửa (Half Adder): Mạch này giống như đứa bé mới học cộng, chỉ cộng được 2 bit A và B, không biết nhớ (carry) từ bên ngoài. Nó cho ra: Tổng (Sum) = A XOR B (khác nhau thì ra 1) Nhớ (Carry) = A AND B (cả hai cùng 1 thì mới có nhớ) Bảng chân trị: A | B | Sum | Carry --|---|-----|------ 0 | 0 | 0 | 0 0 | 1 | 1 | 0 1 | 0 | 1 | 0 1 | 1 | 0 | 1 Nói vui: hai đứa cùng bật thì “dư 1”, còn bật lệch thì chỉ ra kết quả thôi, không dư gì cả. Mạch cộng đầy đủ (Full Adder): Full Adder là phiên bản người lớn của Half Adder, nó không chỉ cộng A + B mà còn cộng thêm carry từ lần trước (Cin) nữa, tức là cộng 3 bit cùng lúc. Nó cho ra: Sum = A XOR B XOR Cin Carry = (A AND B) OR (Cin AND (A XOR B)) A | B | Cin | Sum | Cout --|---|-----|-----|----- 0 | 0 | 0 | 0 | 0 0 | 0 | 1 | 1 | 0 0 | 1 | 0 | 1 | 0 0 | 1 | 1 | 0 | 1 1 | 0 | 0 | 1 | 0 1 | 0 | 1 | 0 | 1 1 | 1 | 0 | 0 | 1 1 | 1 | 1 | 1 | 1 Hiểu nôm na: không chỉ tính chuyện của hai đứa hiện tại, mà còn phải gánh luôn cái “nợ dư” từ phép cộng trước. Chính nhờ hàng loạt Full Adder xếp thành chuỗi mà CPU mới cộng được số 8-bit, 32-bit, 64-bit ngon lành như bạn thấy hằng ngày.

Author

admin