+ -
当前位置:首页 → 问答吧 → 如何把十六进制字符串转化为字节数组?

如何把十六进制字符串转化为字节数组?

时间:2011-11-30

来源:互联网

例如有一AnsiString str="1A233334D6"(str里存放的实际是去完空格的16进制数)如何把它转化为等值的{0x1A},{0x23},{0x33},{0x34},{0xD6}这样的byte[]数组啊 ,求大侠指教,谢谢!

作者: youenyuan   发布时间: 2011-11-30

C/C++ code
int main()
{
    char str[]="1A233334D6";
    unsigned char byte[128];
    for(int i=0;i<strlen(str)/2;++i)
        sscanf(str+2*i,"%2x",byte+i);

    for(int i=0;i<strlen(str)/2;++i)
        cout <<hex <<(int)byte[i] <<endl;

     return 0;
}

作者: yisikaipu   发布时间: 2011-11-30

转化为整数就好了

作者: yujie_v   发布时间: 2011-11-30

引用 1 楼 yisikaipu 的回复:

C/C++ code
int main()
{
char str[]="1A233334D6";
unsigned char byte[128];
for(int i=0;i<strlen(str)/2;++i)
sscanf(str+2*i,"%2x",byte+i);

for(int i=0;i<strlen(str)/2;++i)
……


变量i重复申明了;

作者: duke56   发布时间: 2011-11-30