我有一个不同长度的NSData对象,我想要做的是每两个字节抓取一次,并将它们相加到一个新的NSData对象中。
我该怎么做?
我已经找到了这样的方法:enumerateByteRangesUsingBlock,但不知道如何做算术。
例如,我有以下数据:37 64 61 31 33 61 36 38 61 39 39 37 36 34 39 36 30 34 36
我想把所有这些值加在一起:64 31 61 38 39 37 34 36 34
最后得到的结果是:02 3C
发布于 2015-10-24 12:58:56
假设:您希望将多个无符号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);https://stackoverflow.com/questions/33318096
复制相似问题