数据示例为:
de 55 7a ff 41 4e 3b
.. .. .. .. .. .. .. .. .. .. .
.
前六个数字(十六进制)的总和33b
,"校验和"数字3b
,作为总和的最后 2 个字符。
这个校验和叫什么名字?
如何在目标 C 中做到这一点?
谢谢
获取十六进制字符串的校验和非常简单,大多数时候,我们只是想多了。
如果您有NSMutableData并希望获得它的校验和,请在此处查看我的答案。
如果您有字节数组:
例如:
Byte receivedHex[7] = {0xde, 0x55, 0x7a, 0xff, 0x41, 0x4e, 0x3b};
它甚至更简单:
Byte checksum;
for (int i = 0; i < 7; i++){
checksum += receivedHex[i];
checksum = checksum&0xff;
}
我找到了解决方案
首先,我必须将十六进制转换为 NSData。之后,将 NSData 转换为 NSMutableArray。使用 NSMutableArray,我可以计算出六个数字的总和。