【问题标题】:How to convert the Char * to hexadecimal value如何将 Char * 转换为十六进制值
【发布时间】:2012-07-23 20:07:18
【问题描述】:

我有一个需要转换为十六进制值的 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)];

【问题讨论】:

  • 澄清一下,你想转换成像“0xfeed”这样的十六进制字符串吗?
  • 你能举出你想要的输入和输出的例子吗?我仍然不清楚您要达到的目标。
  • 看到我正在使用 mount 方法,当我返回它包含 arrrr 值,即 Emudhra¿services¿¿¿
  • 代码没问题检查 char* arrrr 是否有价值
  • 我解决了这个问题NSData* data = [NSData dataWithBytes:arrrr length:size];

标签: iphone objective-c char hex


【解决方案1】:

试试这个:

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

使用数组,您必须循环执行

【讨论】:

    【解决方案2】:

    您不会将值“转换”为十六进制。十六进制只是计数或显示相同数字的不同方式。

    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];
    }
    

    【讨论】:

      猜你喜欢
      • 2011-05-25
      • 2015-06-04
      • 2012-02-24
      • 2013-08-03
      • 2011-11-27
      • 1970-01-01
      • 2014-02-05
      • 2012-04-09
      相关资源
      最近更新 更多