// 第一种 NSString *connID = ((Collector *)weakSelf.globalMutableArray[i]).orignalConnID; const uint8_t a = [[connID substringToIndex:2] intValue]; NSRange bRange = {2, 2}; const uint8_t b = [[connID substringWithRange:bRange] intValue]; NSRange cRange = {4, 2}; const uint8_t c = [[connID substringWithRange:cRange] intValue]; const uint8_t d = [[connID substringFromIndex:6] intValue]; //第二种 NSString *str = @"AA21f0c1762a3abc299c013abe7dbcc50001DD"; NSData* bytes = [str dataUsingEncoding:NSUTF8StringEncoding]; Byte * myByte = (Byte *)[bytes bytes]; NSLog(@"myByte = %hhu",myByte[0]); NSMutableData* data = [NSMutableData data]; NSScanner* scanner = [NSScanner scannerWithString:@"AA"]; unsigned intValue; [scanner scanHexInt:&intValue]; [data appendBytes:&intValue length:1]; Byte * yte = (Byte *)[data bytes]; // 拿到的数据 const uint8_t senddata[] = {0xEB, 0x90, 0x00, 0x05, 0x06, a, b, c, d, 0x87};
觉得有用还是没用都评论哦! ^..^!!!
本文介绍了两种从字符串中解析出字节的方法。第一种方法通过使用NSString的各种substring方法获取特定位置的子串,并将其转换为uint8_t类型的数值。第二种方法则通过NSData将整个字符串编码并转换成字节数组,同时演示了如何使用NSScanner来读取十六进制值。
98

被折叠的 条评论
为什么被折叠?



