iOS Objective c 16进制字符串转为二进制数组_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > iOS Objective c 16进制字符串转为二进制数组

iOS Objective c 16进制字符串转为二进制数组

 2014/5/5 15:34:49  lizhuang  程序员俱乐部  我要评论(0)
  • 摘要:@implementationNSString(StringToHexData)////DecodesanNSStringcontaininghexencodedbytesintoanNSDataobject//-(NSData*)stringToHexData{intlen=[selflength]/2;//Targetlengthunsignedchar*buf=malloc(len)unsignedchar*whole_byte=buf;charbyte_chars[3]={'\0'
  • 标签:iOS 数组 字符串 二进制
class="java">@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:i*2];
        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
发表评论
用户名: 匿名