我有一个需要转换为十六进制值的 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)];
我有一个需要转换为十六进制值的 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)];
您不会将值“转换”为十六进制。十六进制只是计数或显示相同数字的不同方式。
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];
}
尝试这个:
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
使用数组,您必须循环执行