字符串或者int转十六进制
//开始传输config文件 -(void)Qlife_sendConfigStart:(NSString *)fileData{ //读取文件 NSError *error = nil; NSString *str = [NSString stringWithContentsOfFile:fileData encoding:NSUTF8StringEncoding error:&error]; if (error != nil) { NSLog(@"读取文件:%@", [error localizedDescription]);//将错误信息输出来 } else{ NSLog(@"读取文件:%@",str); } NSString *config; //1. 去除掉首尾的空白字符和换行字符 config = [str stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; //2. 去除掉其它位置的空白字符和换行字符 config = [config stringByReplacingOccurrencesOfString:@"\r" withString:@""]; config = [config stringByReplacingOccurrencesOfString:@"\n" withString:@""]; config = [config stringByReplacingOccurrencesOfString:@"\t" withString:@""]; config = [config stringByReplacingOccurrencesOfString:@" " withString:@""];// \s也是去空格 // NSLog(@"config:%@",config); // 截取字符串 NSString *character1=[config substringWithRange:NSMakeRange(0,2)]; NSString *character2=[config substringWithRange:NSMakeRange(2,2)]; NSString *character3=[config substringWithRange:NSMakeRange(4,2)]; NSString *character4=[config substringWithRange:NSMakeRange(6,2)]; NSString *character5=[config substringWithRange:NSMakeRange(8,2)]; NSString *character6=[config substringWithRange:NSMakeRange(10,2)]; NSString *character7=[config substringWithRange:NSMakeRange(12,2)]; NSString *character8=[config substringWithRange:NSMakeRange(14,2)]; // //先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型 // unsigned long red = strtoul([b UTF8String],0,16); // //strtoul如果传入的字符开头是“0x”,那么第三个参数是0,也是会转为十六进制的,这样写也可以: // unsigned long red = strtoul([@"0x6587" UTF8String],0,0); // 先以16为参数告诉strtoul字符串参数表示16进制数字,然后使用0x%X转为数字类型 unsigned long supplement1 = strtoul([character1 UTF8String],0,16); unsigned long supplement2 = strtoul([character2 UTF8String],0,16); unsigned long supplement3 = strtoul([character3 UTF8String],0,16); unsigned long supplement4 = strtoul([character4 UTF8String],0,16); unsigned long supplement5 = strtoul([character5 UTF8String],0,16); unsigned long supplement6 = strtoul([character6 UTF8String],0,16); unsigned long supplement7 = strtoul([character7 UTF8String],0,16); unsigned long supplement8 = strtoul([character8 UTF8String],0,16); int i = 0; char dataArr[14] = {0x00}; dataArr[i++] = 0x55; dataArr[i++] = 0xAA; dataArr[i++] = 0x0E; dataArr[i++] = 0x72; dataArr[i++] = supplement4; dataArr[i++] = supplement3; dataArr[i++] = supplement2; dataArr[i++] = supplement1; dataArr[i++] = supplement8; dataArr[i++] = supplement7; dataArr[i++] = supplement6; dataArr[i++] = supplement5; // dataArr[i++] = 0x55; // dataArr[i++] = 0xAA; // dataArr[i++] = 0x0E; // dataArr[i++] = 0x72; // dataArr[i++] = 0x7E; // dataArr[i++] = 0xFF; // dataArr[i++] = 0x7F; // dataArr[i++] = 0xFF; // dataArr[i++] = 0x00; // dataArr[i++] = 0xDC; // dataArr[i++] = 0x00; // dataArr[i++] = 0x00; //发送数据校验 uint asrsum=0; for (int j=0; j<12;j++) { asrsum+=(dataArr[j]&0xff);//求数组值之和 } char high=asrsum>>8;//当brightsum=[0,65025]时,当brightsum=[0x00,0xff*0xff]时 char low=asrsum&0xff;//当brightsum=[0,65025]时,当brightsum=[0x00,0xff*0xff]时 dataArr[i++] = high; dataArr[i++] = low; NSData *data_config = [NSData dataWithBytes:dataArr length:14]; // NSLog(@"data_config:%@",data_config); _busy = YES; [self senddata:data_config]; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix