+ (NSData *)getCrcVerifyCode:(NSData *)data {
int crcWord = 0x0000ffff; // 初始值
Byte *dataArray = (Byte *)[data bytes];
for (NSInteger i = 0; i < data.length; i++) {
Byte byte = dataArray[i];
crcWord ^= (int)byte & 0x000000ff;
for (NSInteger j = 0; j < 8; j++) {
if ((crcWord & 0x00000001) == 1) {
crcWord = crcWord >> 1;
crcWord = crcWord ^ 0x0000a001; // 0x0000a001 多项式
}else {
crcWord = (crcWord >> 1);
}
}
}
Byte crcH = (Byte)0xff & (crcWord >> 8);
Byte crcL = (Byte)0xff & crcWord;
Byte arraycrc[] = {crcH,crcL};
NSData *datacrc = [[NSData alloc] initWithBytes:arraycrc length:sizeof(arraycrc)];
return datacrc;
}
ios crc16校验,经验证可用 含 多项式、初始值
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- JhtVerificationCodeBox(校验框) 先上图,看一下是否符合你的场景吧! Function De...
- 在Xcode7.0之后,苹果废弃了NSURLConnection方法,数据请求使用NSURLSession,作为网...
- 【蝴蝶效应】 蝴蝶效应:上个世纪70年代,美国一个名叫洛伦兹的气象学家在解释空气系统理论时说,亚马逊雨林一只蝴蝶...