WINCE下,将16进制转换成2进制,该怎么处理

WINCE下,将16进制转换成2进制
我是在wince下创建的智能设备项目,现在从智能设备返回的值是16进制的,需要转换成2进制之后再进行计算,比如,13C25943转换成0001 0011 1100 0010 0101 1001 0100 0011;
我的代码是这么写的
C/C++ code

string Utility::HexCharToCString(char chHex)
 {
     switch(chHex)
     {
     case '0':
         return "0000";
     case '1':
         return "0001";
    case '2':
        return "0010";
    case '3':
        return "0011";
    case '4':
        return "0100";
    case '5':
        return "0101";
    case '6':
        return "0110";
    case '7':
        return "0111";
    case '8':
        return "1000";
    case '9':
        return "1001";
    case 'A':
    case 'a':
        return "1010";
    case 'B':
    case 'b':
        return "1011";
    case 'C':
    case 'c':
        return "1100";
    case 'D':
    case 'd':
        return "1101";
    case 'E':
    case 'e':
        return "1110";
    case 'F':
    case 'f':
        return "1111";
    default:
        return "0000";
     }
 }
//================================================================
          for(int i=0;i<8;i++)
     {
         str+=HexCharToCString(*(chArr+index+i));
     }

这样的结果我的str返回的为什么是NULL呢,请求高手解答

------解决方案--------------------
代码看好像是没什么问题,但建议 LZ 还是传一个空间到函数中来保存转换后的结果,不要直接返回一个局部变量的地址。
------解决方案--------------------
既然楼主你知道“现在从智能设备返回的值是16进制的”,那就不是字符的asc码啊

你试试所有case的单引号都去掉
比如case '0':改成case 0: