检验和(checksum),在数据处理和数据通信领域中,用于校验目的地一组数据项的和。通常用在通信中,尤其是远距离通信中保证数据的完整性和准确性。 现在请你实现如下校验算法。传送的数据为一个字符串,该字符串只包含数字。校验规则为先求和,然后用和除以97得到的余数即为校验和。求和的规则是数字本身乘以该数字的位置(从左向右数)。如字符串123456789,则求和过程如下: 1X1 + 2X2 + 3X3 + 4X4 + 5X5 + 6X6 + 7X7 + 8X8 + 9X9 = 285。除以97后得余数为91,即为校验和。用c語言表述
时间: 2023-02-22 07:36:50 浏览: 203
sum_check.rar_SUM_SUM_CHECK_check_sum_校验和
下面是用C语言实现上述校验算法的代码示例:
```
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int checksum(char *str) {
int len = strlen(str);
int sum = 0;
for (int i = 0; i < len; i++) {
sum += (str[i] - '0') * (i + 1);
}
return sum % 97;
}
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("Usage: %s <string>\n", argv[0]);
return 1;
}
printf("Checksum: %d\n", checksum(argv[1]));
return 0;
}
```
阅读全文