本文介绍了字符*字符串为十六进制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的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!