本文介绍了字符*字符串为十六进制arrary用C的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的char * para.mac ,字符串 c8934641d0b7 保存在其中。

I have char * para.mac, string c8934641d0b7 stored in it.

我想将其转换为十六进制的数组 INT米[6]

I want to convert it to hex array int m[6],make

m[0]=0xc8;
m[1]=0x93;
...
m[5]=0xb7; 

我试图做到这一点:

I tried to do it with:

    int i;
    int m[6];
    sscanf(para.mac, "%x%x%x%x%x%x", &m[0], &m[1], &m[2], &m[3], &m[4], &m[5]);

    for(i=0;i<6;i++)
      printf("%i  \r\n",m[i]);

但似乎并没有工作。

but it seems doesn't working.

和我不知道为什么,结果表明对我这样的:

and I don't know why the result shows to me like:

1178718391  
0  
0  
134448233  
8  
134272063  

我觉得应该是

 200(0xc8)
 147(0x93)
 70(0x46)
 65(0x41)
 208(0xd0)
 183(0xb7)

有啥问题?

推荐答案

您是在正确的轨道上,如果我没有记错的话。

You're on the right track, if I'm not mistaken.

考虑尝试:%2X%2X%2X%2X%2X%2X,这意味着每个十六进制数字只会消耗最多2个字符

Consider trying: "%2x%2x%2x%2x%2x%2x", which means that each hex digit will only consume at most 2 characters.

这篇关于字符*字符串为十六进制arrary用C的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-14 09:27