0

16 進数値に変換する必要がある 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)];
4

2 に答える 2

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 の 16 進値を受け取ります。

char:m andHex:6d

配列を使用すると、ループで実行する必要があります

于 2012-07-25T12:09:55.187 に答える
0

値を 16 進数に「変換」しません。16 進数は、同じ数値を数えたり表示したりする別の方法です。

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

次に、バイト配列を int に変換し、表示して int を 16 進文字列としてフォーマットする以下のコードを参照してください。

-(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];
}
于 2012-07-25T12:17:02.577 に答える