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

    solution

    Đề bài: [Mạng máy tính] CRC-32 IEEE

    Tính CRC-32 (IEEE 802.3) của một chuỗi ASCII, dùng thuật toán bit-by-bit với đa thức phản chiếu 0xEDB88320:

    • Khởi tạo crc = 0xFFFFFFFF.
    • Với mỗi byte: crc ^= byte, rồi lặp 8 lần: nếu bit thấp nhất bằng 1 thì crc = (crc >> 1) ^ 0xEDB88320, ngược lại crc >>= 1.
    • Kết quả cuối: crc ^ 0xFFFFFFFF.

    In CRC ở dạng 8 chữ số hệ 16 chữ thường có đệm 0. Chỉ dùng thư viện chuẩn (không gọi binascii/zlib).

    Ví dụ

    Chuỗi rỗng cho CRC 00000000. Chuỗi a cho e8b7be43.

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

      Một dòng chứa chuỗi ASCII (có thể rỗng). Đọc đến hết dòng, bỏ ký tự xuống dòng cuối.

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

      0 ≤ độ dài chuỗi ≤ 10000. Ký tự ASCII in được.

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

      In một dòng: CRC-32 dạng 8 chữ số hệ 16 chữ thường.

    Ví dụ:

    Đầu vào:

    a
    

    Đầu ra:

    e8b7be43

    Giải thích:

    CRC-32 IEEE của 'a' theo thuật toán phản chiếu 0xEDB88320 cho ra e8b7be43.

    Đang tải editor...