Objective C - 以十六进制格式将 char[] 转换为 NSString
Posted
技术标签:
【中文标题】Objective C - 以十六进制格式将 char[] 转换为 NSString【英文标题】:Objective C - Convert char[] to NSString in Hex format 【发布时间】:2011-10-02 11:12:54 【问题描述】:我有个问题需要把char[]转成String,十六进制格式
例子
Nsstring * result;
char[4]=0x01,0x02,0x03,0x04;
/// convert -- char[] -> Nsstring in Hex format
Nslog(@"%@",result);
预期输出:“01020304”
谢谢
【问题讨论】:
【参考方案1】:试试这个:
NSMutableString * result = [[NSMutableString alloc] init]; char cstring[4]=0x01,0x02,0x03,0x04; /// convert -- char[] -> Nsstring in Hex format int i; for (i=0; i<4; i++) [result appendString:[NSString stringWithFormat:@"%02x",cstring[i]]]; NSLog(@"%@",result); [result release];
【讨论】:
+1,但最好使用initWithCapacity:
来避免重新分配,因为您知道字符串的长度。
那么你可能还想做 [result appendFormat:@"%02x",cstring[i]];以避免额外的字符串分配。
如果你需要大写字母,并且像我一样连续三个字母,“%02X%02X%02X”是正确的字符串。【参考方案2】:
格式化程序“%02x”会将单个字符显示为 2 位零填充十六进制数。只需循环遍历您的数组并用它们构建字符串。
【讨论】:
我喜欢这解释了 %02x 的含义以上是关于Objective C - 以十六进制格式将 char[] 转换为 NSString的主要内容,如果未能解决你的问题,请参考以下文章
objective C 十六进制 格式化 显示成两位0.2hhX
如何从网站以 xml 格式获取数据并使用 Objective-c 解析该数据以执行操作
如何在 Objective C 中将十六进制数转换为整数和字符串?
c_cpp Objective-C类将十六进制字符串转换为UIColor。支持#RGB#ARGB #RRGGBB #AARRGGBBUsage:[UIColor colorWithHexString: