#include "stdio.h" void main() { int i; //任意10个数值,也可以不是8位 unsigned char data[10]={0x12,0x21,0x1A,0xB1,0xC1,0xEB,0xDF,0xCA,0xF6,0xDD}; unsigned char out;//用于保存异或结果 out=0x00; for (i=0;i<sizeof(data);i++) { out^=data[i]; } printf("原来的校验值:%X\n",out); out^=(data[0]^0xee);//将data[0]改为新数据后计算新校验和的方法 out^=(data[5]^0x20);//将data[5]改为新数据后计算新校验和的方法 printf("修改后校验值:%X\n",out); data[0]=0xee; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确 data[5]=0x20; //采用原始的方法计算新的校验和,和前面的校验和对比是否正确 out=0x00; for (i=0;i<10;i++) { out^=data[i]; } printf("原始方法得出校验值:%X\n",out); }