引用引用第1楼yamqq于2014-07-16 18:59发表的 :#include "stdafx.h" char *fnFCS(const char *pstr,int iCount,char *pFCS) //定义FCS校验函数 { if(pstr==NULL||pFCS==NULL) //如果指针为null return NULL; //返回NULL char ch=*pstr; //定义字符变量并赋初值 for(int i=1;i<iCount;i++) //循环iCount次 { ch^=*(pstr+i); //异或运算 } char ct=ch>>4; //取异或结果的高四位 if(ct>9) //转为ASCII码 ct+='A'-10; else ct+='0'; *pFCS=ct; ct=ch&0x0F; //取异或结果的低四位 if(ct>9) //转为ASCII码 ct+='A'-10; else ct+='0'; *(pFCS+1)=ct; return pFCS; //返回校验值 } int main(int argc, char* argv[]) //定义主函数 { char c,str[100]=""; //定义变量 int i=0; //定义变量 char jyTemp[2]; //定义变量 printf("请输入要校验的字符串:\n"); //要求输入字符串 while((str=getchar())!='\n') //输入字符串,直到遇到回车符 { i+=1; fnFCS(str,i,&jyTemp[0]); //调用FCS计算函数 } printf("以上字符串的FCS校验是:'%c%c'。\n",jyTemp[0],jyTemp[1]); //输出结果 return 0; }