有个项目有一段char buf[13]...,发现有个crc校验码不是很清楚怎么计算,应该如何解读,(ushort)(m_fooda++)又是什么意思
ushort checkSum(uchar m_fooda, ushort bufSize)
{
ushort wckh = 0;
while (frameSize--)
{
ushort tmp = (ushort) * (m_fooda++);
wckh += tmp;
qDebug() << "tmp: " << tmp << "\n";
}
qDebug() << "wckh: " << wckh;
return wckh;
}
checkSum((uchar*)&buf[4], _countof(buf) - 6)
这个代码貌似不是CRC,你这个代码其实是双字节校验和
ushort tmp = (ushort) (m_fooda++);
将m_fooda的值加1后强制类型转换为ushort类型,再赋值给tmp