Objective c NSData算法
我有一个长度不同的Objective c NSData算法,objective-c,hex,nsdata,Objective C,Hex,Nsdata,我有一个长度不同的NSData对象,我想做的是抓取每2个字节,并将它们相加成一个新的NSData对象 我该怎么做 我发现这个方法: EnumerateBytrangesusingBlock但不知道如何做算术 例如,我有以下数据:37646131336136386139373639303436 我想对所有这些值求和:6431613839373634 最后得到以下结果:023c假设:您希望将多个无符号8位值相加为一个无符号16位值,忽略溢出 NSData *data = ...; const uin
NSData
对象,我想做的是抓取每2个字节,并将它们相加成一个新的NSData
对象
我该怎么做
我发现这个方法:
EnumerateBytrangesusingBlock
但不知道如何做算术
例如,我有以下数据:37646131336136386139373639303436
我想对所有这些值求和:6431613839373634
最后得到以下结果:
023c
假设:您希望将多个无符号8位值相加为一个无符号16位值,忽略溢出
NSData *data = ...;
const uint8_t *p = (const uint8_t *)[data bytes];
NSUInteger length = [data length];
uint16_t total = 0;
for (NSUInteger i = 1; i < length; i += 2)
total += (uint16_t)p[i];
NSLog(@"total=%u", (unsigned)total);
NSData*data=。。。;
const uint8_t*p=(const uint8_t*)[数据字节];
NSU整数长度=[数据长度];
uint16_t总计=0;
对于(整数i=1;i