目标 C 中十六进制字符串的校验和



数据示例为:

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,我可以计算出六个数字的总和。

最新更新