美文网首页
iOS 2进制与16进制的转换

iOS 2进制与16进制的转换

作者: jianshu小赵 | 来源:发表于2017-03-08 15:22 被阅读112次

    @implementation NSString (StringToHexData)

    //
    // Decodes an NSString containing hex encoded bytes into an NSData object

    • (NSData *) stringToHexData
      {
      int len = [self length] / 2; // Target length
      unsigned char *buf = malloc(len)
      unsigned char *whole_byte = buf;
      char byte_chars[3] = {'\0','\0','\0'};

      int i;
      for (i=0; i < [self length] / 2; i++) {
      byte_chars[0] = [self characterAtIndex:i2];
      byte_chars[1] = [self characterAtIndex:i
      2+1];
      *whole_byte = strtol(byte_chars, NULL, 16);
      whole_byte++;
      }

      NSData *data = [NSData dataWithBytes:buf length:len];
      free( buf );
      return data;
      }

    @end
    @implementation NSData (DataToHexString)

    • (NSString *) dataToHexString
      {
      NSUInteger len = [self length];
      char * chars = (char *)[self bytes];
      NSMutableString * hexString = [[NSMutableString alloc] init];

    for(NSUInteger i = 0; i < len; i++ )
    [hexString appendString:[NSString stringWithFormat:@"%0.2hhx", >chars[i]]];

    return hexString;
    }
    @end

    相关文章

      网友评论

          本文标题:iOS 2进制与16进制的转换

          本文链接:https://www.haomeiwen.com/subject/egvbgttx.html