首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > WinCE >

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

2012-03-27 
WINCE下,将16进制转换成2进制我是在wince下创建的智能设备项目,现在从智能设备返回的值是16进制的,需要转

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:

热点排行