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

    solution

    Đề bài: [Hệ điều hành Unix] Internet checksum 16-bit

    Internet checksum (RFC 1071)

    Checksum của TCP/UDP/IP dùng phép cộng one's complement trên các word 16-bit:

    1. Cộng dồn tất cả các word 16-bit.
    2. Cộng phần tràn (carry vượt 16 bit) trở lại tổng (fold).
    3. Lấy bù 1 (one's complement) của tổng 16-bit.

    Cho danh sách các word 16-bit (số nguyên 0–65535), tính checksum.

    Ví dụ I/O

    Vào:

    2
    1
    2
    

    Tổng = 3, không tràn, bù 1 của 0x0003 = 0xFFFC = 65532.

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

      Dòng 1: số n word. n dòng tiếp theo mỗi dòng một word 16-bit.

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

      1 ≤ n ≤ 10000, 0 ≤ word ≤ 65535.

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

      Một dòng: giá trị checksum 16-bit (0–65535).

    Ví dụ:

    Đầu vào:

    2
    1
    2
    

    Đầu ra:

    65532

    Giải thích:

    Tổng=3, bù 1 của 0x0003 là 0xFFFC = 65532.

    Đang tải editor...