-2

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

4

1 回答 1

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];
 }

我希望这能帮到您。快乐编码。

于 2012-11-22T06:17:05.560 回答