如何将NSString转换为固定块大小的十六进制字符串

时间:2012-11-22 05:46:39

标签: iphone objective-c ios xcode

在我的应用程序中,我将 NSString 转换为 HexString 。但我总是需要一个固定大小(16字节)的十六进制字符串,例如如果我的十六进制字符串的长度是15个字节,我希望它是16个字节。我知道我可以在十六进制字符串的开头添加零,但是如何添加,因为只需添加" 0"我正在将它转换回NSString时无效。

1 个答案:

答案 0 :(得分:1)

你可以试试这个代码......

+ (NSString *) stringToHex:(NSString *)str
{   
 NSUInteger len = [str length];
   unichar *chars = malloc(len * sizeof(unichar));
   [str getCharacters:chars];

  NSMutableString *hexString = [[NSMutableString alloc] init];

    for(NSUInteger i = 0; i < len; i++ )
    {
      // [hexString [NSString stringWithFormat:@"%02x", chars[i]]]; //previous input

      [hexString appendFormat:@"%02x", chars[i]]; //EDITED PER COMMENT BELOW
    }
    free(chars);

   return [hexString autorelease];
 }

我希望这会对你有所帮助。 快乐的编码。