Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSData算法_Objective C_Hex_Nsdata - Fatal编程技术网

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