在 Objective C 中将 Hex NSData 转换为 int

Convert Hex NSData to int in Objective C

我们的自定义智能路由器正在给我 NSData 响应

<800c01ff 0001ffff ffff29ff>

这里,800c是我的deviceId。如何将其转换为 int ?

deviceId =32780;

当我向路由器发送命令时,我将其构建为

Byte mqttData[12];

mqttData[0] =[[NSNumber numberWithUnsignedChar:(deviceID >> 8) & 0xFF] intValue];
//mqttData[0]=128 or 80 in Hex

mqttData[1] =[[NSNumber numberWithUnsignedChar:deviceID & 0xFF] intValue];
//mqttData[1]=12 or 'C' in Hex

return [NSData dataWithBytes:mqttData length:sizeof(mqttData)];
int deviceId = CFSwapInt16BigToHost(*(int*)([deviceIDData bytes]))

答案取自 Larme 的评论。