异或校验和
#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); }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/202399.html原文链接:https://javaforall.net
