#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); }