2012-07-25 22 views
0

我有一个字符数组,我需要转换为十六进制值如何为char *转换为十六进制值

char* arrrr =[self mountLVparams:NULL :c :code_ward_arr]; 

int size =strlen(arrrr); 

我这个尝试,但这不会发生

NSData* data = [NSData dataWithBytes:arrrr length:sizeof(sizeof(unsigned char)*size)]; 
+1

要澄清,是否要转换为十六进制字符串,如“0xfeed”? – sbooth 2012-07-25 11:46:32

+0

没有NSData的也蛮好 – 012346 2012-07-25 11:48:22

+0

你可以给你想要的输入和输出的例子吗?我仍然不清楚你想要达到的目标。 – sbooth 2012-07-25 11:52:43

回答

0

试试这个:

NSString *inp = [NSString stringWithString:@"MmMmMm"]; 
char star = [inp characterAtIndex:3]; 
NSString *string = [NSString stringWithFormat:@"char:%c andHex:%x",[inp characterAtIndex:3],star]; 
NSLog(@"%@",string); 

查看输出是"%@"作为常规字符串。在字符串中,您将收到char的十六进制值。

char:m andHex:6d 

对于数组你将不得不做一个循环

0

你不“转化”的数值为十六进制。十六进制只是计算或显示相同数字的一种不同方式。

if (0xFF==255) 
{ 
    NSLog(@"255 equals 0xFF"); 
} 

现在看到下面的代码下面,将您的字节数组转换成和INT,然后显示然后格式化INT为十六进制的字符串。

-(void) convertData: (unsigned char*) data 
{ 
    int numBytes = sizeof(int); 

    //convert array of bytes to NSData* 
    NSData* binaryData = [[NSData alloc] initWithBytes: (void*) data length: numBytes]; 

    //read value of number stored in data, presuming it is an integer 
    int number = *((int*) data); 

    //format number as a hex string 
    NSString* hexString = [NSString stringWithFormat:@"%X",number]; 
} 
相关问题