- /*
- strTemp:入参,字符串
- return:16进制字符串
- */
- CString CChecksumDlg::CalcCheckSum(CString strTemp)
- {
- if(strTemp.GetLength()%4 != 0)
- {
- MessageBox("字符串长度不正确,请确认字符串长度为4的整倍数");
- return "";
- }
- char *pArry = new char[strTemp.GetLength()];
- char pTemp[4]={0};
- memcpy(pArry,strTemp,strTemp.GetLength());
- for(int i =0;i<strTemp.GetLength();i+=4)
- {
- pTemp[0] ^= pArry[i];
- pTemp[1] ^= pArry[i+1];
- pTemp[2] ^= pArry[i+2];
- pTemp[3] ^= pArry[i+3];
- }
- pTemp[0] =~pTemp[0];
- pTemp[1] =~pTemp[1];
- pTemp[2] =~pTemp[2];
- pTemp[3] =~pTemp[3];
- CString strReturn;
- strReturn.Format("%x%x%x%x",pTemp[0]&0xff,pTemp[1]&0xff,pTemp[2]&0xff,pTemp[3]&0xff);
- return strReturn;
- }
32位异或取反源码
最新推荐文章于 2022-05-28 18:21:15 发布