diff --git a/main.py b/main.py index c9f64b9..6aab217 100644 --- a/main.py +++ b/main.py @@ -170,16 +170,21 @@ def calculate_checksum(data): Returns: int: 计算得到的校验和。 """ + # 初始化校验和变量 checksum = 0 + # 获取数据长度 n = len(data) # 按 16 位块划分 for i in range(0, n - 1, 2): + # 将每块数据转换为 16 位整数 chunk = (data[i] << 8) + data[i + 1] + # 累加每块数据到校验和 checksum += chunk # 如果长度为奇数,补零 if n % 2 == 1: + # 只取最后一个字节,并将其置于 16 位整数的高字节位置 checksum += data[-1] << 8 # 将 32 位总和折叠为 16 位