Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [Kiến trúc máy tính] Bộ cộng đầy đủ nối tiếp (ripple-carry)

    Bộ cộng nối tiếp (ripple-carry adder) ghép n full adder: mỗi tầng nhận hai bit a_i, b_i và carry-in, sinh ra bit tổng s_i = a_i ⊕ b_i ⊕ c_i và carry-out c_{i+1} = (a_i·b_i) + (c_i·(a_i⊕b_i)).

    Cho hai chuỗi nhị phân A, B cùng độ dài n (bit cao nhất ở bên trái) và carry-in cin, hãy in chuỗi tổng n bit và carry-out cuối cùng, cách nhau dấu cách: S cout.

    Ví dụ

    A = 0110 (6), B = 0011 (3), cin = 0: tổng = 1001 (9), carry-out = 0.

    • Định dạng đầu vào:

      Dòng 1: hai chuỗi nhị phân A B cùng độ dài. Dòng 2: carry-in cin (0 hoặc 1).

    • Ràng buộc đầu vào:

      1 ≤ n ≤ 64, A và B chỉ gồm ký tự 0/1 và cùng độ dài.

    • Định dạng đầu ra:

      Một dòng: chuỗi tổng n bit, dấu cách, carry-out (0/1).

    Ví dụ:

    Đầu vào:

    0110 0011
    0
    

    Đầu ra:

    1001 0

    Giải thích:

    6 + 3 + 0 = 9 = 1001 trên 4 bit, không có tràn ra ngoài nên carry-out = 0.

    Đang tải editor...