数据样本是:
de 55 7a ff 41 4e 3b
.. .. .. .. .. .. .. .. .. .. .
。
前六个数字的总和(十六进制)为33b
,“校验和”数为3b
,为总和的最后两个字符。
这张支票的名称是什么?
我如何在Objective C中制作它?
谢谢
答案 0 :(得分:1)
要获得十六进制字符串的校验和非常简单,大多数时候,我们只是过度思考它。
如果你有一个NSMutableData并希望得到它的校验和,请检查我的回答here.
如果你有一个字节数组:
例如:
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;
}
答案 1 :(得分:0)
我找到了解决方案
首先,我必须将hex转换为NSData。 之后,将NSData转换为NSMutableArray。 使用NSMutableArray,我可以计算出六位数之和。