iOS 二进制数组转成16进制字符串

iOS 二进制数组转成16进制字符串

 Byte bytes[28];
 [data getBytes:bytes length:28];

 NSMutableString *hexString = [[NSMutableString alloc] init];
 for (int i = 0; i < 28; i++) {
      NSLog(@"%hhu",bytes[i]);
      [hexString appendString:[NSString stringWithFormat:@"%0.2hhx", bytes[i]]];
 }

 NSLog(@" %@  ", hexString);

字符串转二进制

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; 

你可能感兴趣的:(ios,二进制,数组)