iOS 2進(jìn)制與16進(jìn)制的轉(zhuǎn)換

@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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容