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] Phát hiện tràn khi cộng số bù 2

    Cho số bit nnn và hai số nguyên có dấu xxx, yyy (đã nằm trong miền biểu diễn bù 2 nnn-bit). Thực hiện phép cộng x+yx + yx+y trong số học bù 2 nnn-bit (cắt còn nnn bit). Hãy in ra:

    • Dòng 1: kết quả thập phân sau khi cắt nnn bit (diễn giải lại theo bù 2, có thể khác x+yx+yx+y thật).
    • Dòng 2: OVERFLOW nếu xảy ra tràn số có dấu, ngược lại OK.

    Tràn xảy ra khi hai toán hạng cùng dấu nhưng kết quả khác dấu.

    Ví dụ: n=4n=4n=4, x=7x=7x=7, y=1y=1y=1: tổng thật 8 vượt miền [−8,7][-8,7][−8,7], kết quả cắt 4 bit là 10002=−81000_2 = -810002​=−8, có tràn.

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

      Dòng 1 chứa nnn. Dòng 2 chứa xxx và yyy.

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

      2≤n≤322 \le n \le 322≤n≤32; −2n−1≤x,y≤2n−1−1-2^{n-1} \le x, y \le 2^{n-1}-1−2n−1≤x,y≤2n−1−1.

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

      Dòng 1: giá trị thập phân kết quả nnn-bit. Dòng 2: OVERFLOW hoặc OK.

    Ví dụ:

    Đầu vào:

    4
    7 1

    Đầu ra:

    -8
    OVERFLOW

    Giải thích:

    7+1=8 vuot mien [-8,7]; cat 4 bit = 1000 = -8; hai so duong ra am -> tran.

    Đang tải editor...