【发布时间】:2016-10-22 19:20:54
【问题描述】:
我们的定制智能路由器正在给我NSData 响应
这里,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)];
【问题讨论】:
-
使用
NSData *deviceIDData = [theDataResponse subdataWithRange:NSMakeRange(0,2)], int deviceId; [deviceIDData getBytes:&deviceId length:sizeof(int)];? -
为什么
NSNumber会参与其中? -
@Lamre deviceId : 5508224。但它是 32780
-
int deviceId = CFSwapInt16BigToHost(*(int*)([deviceIDData bytes])); -
Converting NSData to int的可能重复除了是
CFSwapInt16BigToHost而不是CFSwapInt32BigToHost,但逻辑是一样的。
标签: ios objective-c int hex nsdata