我从网络电话中获取数据。这是数据。
00000001 00045043 4c4e0000 00023744 92f4cd44 92f4cd44 92f4cd44 92f4cd3c a3d70a00 00014de2 b767a044 93800044 93800044 93800044 93800040 a0000000 00014de2 bdd04044 94400044 94400044 93db3344 94170a3f a6666600 00014de2 c8ccc044 93ddc344 93ddc344 93ddc344 93ddc33e 99999a00 00014de2 ce4b0044 93bd1f44 943d7144 9394cd44 93eccd41 e8e14800 00014de2 d01fc044 93eb3344 93eb3344 93b00044 93b00040 C0000000
数据格式是固定的(我们知道它存储int / float等的位置
问题是我如何阅读并将其存储在单个变量中 例如,这里的前4个字节指定返回的符号数(1)
答案 0 :(得分:1)
NSMutableString * stringHexForm = [NSMutableString string];
for(int i = startLocation ; i < (startLocation + nCharsToReadIn) ; i++)
{
unsigned char byte;
[dataIn getBytes : &byte range : NSMakeRange(i, 1)];
NSString *tempStr=[NSString stringWithFormat:@"%02x",byte];
[stringHexForm appendString:[NSString stringWithFormat:@"%@",tempStr]];
}
无符号结果= 0;
NSScanner *scanner = [NSScanner stringHexForm];
[scanner scanHexInt:&result];
return result;
答案 1 :(得分:0)
NSData的方法CalArea.x
可以帮助您。您可以通过指定范围来抓取结构中的每个东西。
所以你可以这样做:
func getBytes(buffer: UnsafeMutablePointer<Void>, range: NSRange)
以及每种类型,您需要的范围