crc16校验

WORD crc16(CArray<byte, byte>& aData) {
	WORD crcRet = 0xFFFF;
	WORD crcClib= 0xA001; //校正数字


	for (int i=0; i<aData.GetSize(); i++) {
		byte curVal = aData[i];
		byte bLByte = (crcRet & 0xFF) ^ curVal;
		crcRet = (crcRet & 0xFF00) | bLByte;


		for (int j=0; j<8; j++) {
			byte nYS = crcRet & 1;
			crcRet /= 2;


			if (nYS == 1) {
				crcRet ^= crcClib;
			}
		}
	}


	return crcRet;
}


你可能感兴趣的:(crc16校验)