数据样本是:
de 55 7a ff 41 4e 3b
.. .. .. .. .. .. .. .. .. .. .
.
前六个数字的总和(十六进制)是33b
,“校验和”数字是3b
,作为总和的最后 2 个字符。
这个校验和的名称是什么?
我怎样才能在Objective C中做到这一点?
谢谢
数据样本是:
de 55 7a ff 41 4e 3b
.. .. .. .. .. .. .. .. .. .. .
.
前六个数字的总和(十六进制)是33b
,“校验和”数字是3b
,作为总和的最后 2 个字符。
这个校验和的名称是什么?
我怎样才能在Objective 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 我可以计算六个数字的总和。