CString strHexData = "23080248"; // "23080248"是已经表示为十六进制字符串
BYTE byteBinData[3];
memset(byteBinData, 0, sizeof(byteBinData));如何将strHexData转换成二进制存在byteBinData中?
就是将"23080248"每两位转换成二进制保存到一个字节中。麻烦各位帮下手。多谢

解决方案 »

  1.   

    可以把字符串分成一个字节一个字节
    然后可以用atoi变成整数
    然后再用公式算
    假设"23080248"
    用完atoi放到数组a[]={2,3,0,8...}中
    然后2位就是一个字节
    byteBinData[0]=8*pow(16,0) + 4 * pow(16,1);
    那两个乘的数可以写成常数1和16
    好了
    数放到数组里了你要把他当几进制显示都可以
      

  2.   

    byteBinData[0]=8*pow(16,0) + 4 * pow(16,1);
    也就是
    byteBinData[0]=a[i]*pow(16,0) + a[i+1] * pow(16,1);
    总之是你排列数组的顺序
      

  3.   

    char *p = "23080248";
    long l;
    char *q = (char*)&l;
    whiel (*p)
    {
      *q = ((*p)<<4 | *(p+1));
      p++;
      q++;
    }
    //以上代码将十六进制字符串对应的数值l了。
    //以后要以什么方式输出,随你的便。