Cách cộng hai số bằng toán tử bitwise trong C++

Giả sử chúng ta cần thêm hai bit. Chúng ta chỉ có thể sử dụng logic Half adder [đồ dành cho trẻ em]. Trong một nửa bộ cộng, tổng số bit [S] được thực hiện bằng cách sử dụng bitwise XOR và việc mang bit [C] được thực hiện bằng cách sử dụng bit AND. Bây giờ tất cả những gì chúng ta phải làm là mở rộng hoặc tiếp tục sử dụng logic tương tự cho số lượng lớn bit. Bitwise XOR [^] của 'a' và 'b' cho tổng của 'a' và 'b' nếu 'a' và 'b' không có cùng một bit ở cùng một vị trí. Ví dụ 2^3 sẽ cho bạn 1 trong khi 2^5 sẽ cho 7 [Tự xem]. Bây giờ chúng ta có thể tìm carry bằng cách sử dụng bitwise AND. Tất cả những gì chúng ta cần tính là [a & b]

Chủ Đề