C++ 16进制字符串CString 如何转为 BYTE[] 数组
标签:
杂谈 |
分类: Cplusplus |
转自:http://hi.baidu.com/jetqu2003/blog/item/fef7f7e98e834739b90e2d15
需求:
16进制字符串CString 如何转为 BYTE[]
CString str ="01 02 03 04";
BYTE cmd[1024];
赋值后
cmd[1024] = {0X01,0X02,0X03,0X04};
第一步:将ASCII码转化为16进制数(注意:ASCII码和16进制数的区别)
http://www.cppblog.com/Images/OutliningIndicators/None.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif16进制字符串CString
第二步:调用上面的那个函数来实现需求
http://www.cppblog.com/Images/OutliningIndicators/None.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/None.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/None.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/None.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/None.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/None.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif16进制字符串CString
http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif16进制字符串CString
注释:
把字符赋给BYTE,实则赋的是字符的ASCII码值,因此要先把ASCII码转化为对应的16进制数。
两个字符赋给一个BYTE,就要把第一个字符放到BYTE的高4位,而第二个字符放到BYTE的低4位。
中间通过判断去掉空格。
转自:
需求:
16进制字符串CString如何转为BYTE[]数组
CString str ="56 45 52 30
30";
BYTE buf[64];
赋值后
buf[64] =
int CCP210xSerialTestDlg::Str2Hex(CString str,
unsigned char *data)
{
}
处理这类问题的方法很多,我的方法的特点在于使用了strtoul()函数。
虽然可行,但我还是有疑问,CString类可以直接用数组下标的方式(str[i])访问吗?感觉是不可以这样做,却能解决问题,很纳闷。希望有高手指点一下,不胜感谢。

加载中…