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

Objective-C将十六进制字符串解析为整数

如何从网站以 xml 格式获取数据并使用 Objective-c 解析该数据以执行操作

如何在 Objective C 中将十六进制数转换为整数和字符串?

c_cpp Objective-C类将十六进制字符串转换为UIColor。支持#RGB#ARGB #RRGGBB #AARRGGBBUsage:[UIColor colorWithHexString:

Objective-C 将十六进制字符串解析为整数