日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS -- 十进制、十六进制字符串,byte,data等之间的转换

發布時間:2025/3/20 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 iOS -- 十进制、十六进制字符串,byte,data等之间的转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
十進制->十六進制 Byte bytes[]={0xA6,0x27,0x0A}; NSString *strIdL = [NSStringstringWithFormat:@"%@",[[NSStringalloc]initWithFormat:@"%02lx",(long)bytes[0]]]; 十六進制->十進制 NSString *rechargeInfo = @"0xff055008"; NSString *cardId2 = [rechargeInfosubstringWithRange:NSMakeRange(2,2)]; cardId2 = [NSStringstringWithFormat:@"%ld",strtoul([cardId2UTF8String],0,16)];NSString*str = @"0xff055008";//先以16為參數告訴strtoul字符串參數表示16進制數字,然后使用0x%X轉為數字類型 unsignedlongred= strtoul([str UTF8String],0,16);//strtoul如果傳入的字符開頭是“0x”,那么第三個參數是0,也是會轉為十六進制的,這樣寫也可以: unsignedlongred= strtoul([@"0x6587"UTF8String],0,0);NSLog(@"轉換完的數字為:%lx",red); #pragma mark --字符串處理方法 //字符串處理方法 +(NSString *)cutString:(NSString *)str{NSString *targetStr=nil;if (str.length>9) {targetStr=[str substringFromIndex:9];}return targetStr; } +(NSString *)transToStr:(NSData *)data{NSString *str=[NSStringstringWithFormat:@"%@",data];return str; }//字符串補零操作 +(NSString *)addZero:(NSString *)str withLength:(int)length{NSString *string = nil;if (str.length==length) {return str;}if (str.length<length) {NSUInteger inter = length-str.length;for (int i=0;i< inter; i++) {string = [NSString stringWithFormat:@"0%@",str];str = string;}}return string; }+(NSString *)stringFromHexString:(NSString *)hexString {// char *myBuffer = (char *)malloc((int)[hexStringlength] / 2 +1);bzero(myBuffer, [hexString length] / 2 + 1);for (int i =0; i < [hexString length] - 1; i += 2) {unsigned int anInt;NSString * hexCharStr = [hexString substringWithRange:NSMakeRange(i, 2)];NSScanner * scanner = [[NSScanneralloc] initWithString:hexCharStr] ;[scanner scanHexInt:&anInt];myBuffer[i / 2] = (char)anInt;NSLog(@"myBuffer is %c",myBuffer[i /2] );}NSString *unicodeString = [NSStringstringWithCString:myBuffer encoding:4];NSLog(@"———字符串=======%@",unicodeString);return unicodeString; }//10進制轉16進制 +(NSString *)ToHex:(longlong int)tmpid {NSString *nLetterValue;NSString *str =@"";long longint ttmpig;for (int i =0; i<9; i++) {ttmpig=tmpid%16;tmpid=tmpid/16;switch (ttmpig){case 10:nLetterValue =@"A";break;case 11:nLetterValue =@"B";break;case 12:nLetterValue =@"C";break;case 13:nLetterValue =@"D";break;case 14:nLetterValue =@"E";break;case 15:nLetterValue =@"F";break;default:nLetterValue=[[NSStringalloc]initWithFormat:@"%lli",ttmpig];}str = [nLetterValue stringByAppendingString:str];if (tmpid == 0) {break;}}return str; }//將16進制的字符串轉換成NSData + (NSMutableData *)convertHexStrToData:(NSString *)str {if (!str || [str length] == 0) {return nil;}NSMutableData *hexData = [[NSMutableDataalloc] initWithCapacity:8];NSRange range;if ([str length] %2 == 0) {range = NSMakeRange(0,2);} else {range = NSMakeRange(0,1);}for (NSInteger i = range.location; i < [strlength]; i += 2) {unsigned int anInt;NSString *hexCharStr = [str substringWithRange:range];NSScanner *scanner = [[NSScanneralloc] initWithString:hexCharStr];[scanner scanHexInt:&anInt];NSData *entity = [[NSDataalloc] initWithBytes:&anIntlength:1];[hexData appendData:entity];range.location += range.length;range.length = 2;}return hexData; }+ (NSString *)convertDataToHexStr:(NSData *)data {if (!data || [data length] == 0) {return @"";}NSMutableString *string = [[NSMutableStringalloc] initWithCapacity:[datalength]];[data enumerateByteRangesUsingBlock:^(constvoid *bytes, NSRange byteRange,BOOL *stop) {unsigned char *dataBytes = (unsignedchar*)bytes;for (NSInteger i =0; i < byteRange.length; i++) {NSString *hexStr = [NSStringstringWithFormat:@"%x", (dataBytes[i]) &0xff];if ([hexStr length] == 2) {[string appendString:hexStr];} else {[string appendFormat:@"0%@", hexStr];}}}];return string; } //十進制準換為十六進制字符串 + (NSString *)hexStringFromString:(NSString *)string{NSData *myD = [stringdataUsingEncoding:NSUTF8StringEncoding];Byte *bytes = (Byte *)[myDbytes];//下面是Byte轉換為16進制。NSString *hexStr=@"";for(int i=0;i<[myDlength];i++){NSString *newHexStr = [NSStringstringWithFormat:@"%x",bytes[i]&0xff];///16進制數if([newHexStr length]==1)hexStr = [NSString stringWithFormat:@"%@0%@",hexStr,newHexStr];elsehexStr = [NSString stringWithFormat:@"%@%@",hexStr,newHexStr]; } return hexStr; } +(NSString *) parseByteArray2HexString:(Byte[]) bytes {NSMutableString *hexStr = [[NSMutableString alloc]init];int i = 0;if(bytes){while (bytes[i] != '\0'){NSString *hexByte = [NSString stringWithFormat:@"%x",bytes[i] & 0xff];///16進制數if([hexByte length]==1)[hexStr appendFormat:@"0%@", hexByte];else[hexStr appendFormat:@"%@", hexByte];i++;}}NSLog(@"bytes 的16進制數為:%@",hexStr);return hexStr; }

?

轉載于:https://www.cnblogs.com/mafeng/p/6672168.html

總結

以上是生活随笔為你收集整理的iOS -- 十进制、十六进制字符串,byte,data等之间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。