十六进制字符串转十六进制数值的方法
2015-12-17 21:06
197 查看
void CStr2HEX_V1Dlg::OnOK() { // TODO: Add extra validation here UpdateData(true); int i,len; __int64 temp2=0; if(m_szASCII.IsEmpty()) { MessageBox("请输入需要转换的十六进制字符串!","提示",MB_OK|MB_ICONERROR); return; } len=m_szASCII.GetLength(); for(i=0;i<len;i++) { BYTE flag=TRUE; if(m_szASCII.GetAt(i)<'0') flag=FALSE; if((m_szASCII.GetAt(i)>'f')) flag=FALSE; if((m_szASCII.GetAt(i)>'9')&&(m_szASCII.GetAt(i)<'A')) flag=FALSE; if((m_szASCII.GetAt(i)>'F')&&(m_szASCII.GetAt(i)<'a')) flag=FALSE; if(flag==FALSE) { MessageBox("输入的转换数据必须全为十六进制数[0-9][a-f][A-F]!","错误提示!",MB_OK|MB_ICONERROR); GetDlgItem(IDC_EDIT_ASCII)->SetFocus(); return; } temp2=temp2*0x10+ASC2Hex(m_szASCII.GetAt(i)); } m_szHEX.Format("0x%I64X",temp2); UpdateData(FALSE); //CDialog::OnOK(); } unsigned char CStr2HEX_V1Dlg::ASC2Hex(unsigned char ch) { if((ch>='0')&&(ch<='9')) { return ch-'0'; } else if((ch>='A')&&(ch<='F')) { return ch-'A'+0xA; } else if((ch>='a')&&(ch<='f')) { return ch-'a'+0xA; } else { return -1; } }
比如一个字符串为:"ABCDEF123456",可以转换成0xABCDEF123456
相关文章推荐
- 各种代数结构(抽象代数)总结,向量空间 仿射空间的定义
- React状态的含义和用法
- iOS设备发展史
- Spring中Quartz定时器
- 实战c++中的vector系列--vector<unique_ptr<>>初始化(所有权转移)
- 中国移动互联网趋势报告:教育、金融类App留存率更高
- 实战c++中的vector系列--vector<unique_ptr<>>初始化(所有权转移)
- 每日一篇:求最大公约和最小公倍
- 友盟分享
- python编程之Selenium测试
- hdoj2111Saving HDU
- org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/jiaoshi/daochuEx
- 关于图像对比度【1】——对比度和线性变换
- Linear Regression with One Variable
- 为什么不能自定义java.lang.String
- 环境变量中的用户变量与系统变量的区别
- iftop ---Linux网络流量监控工具
- 安卓学习记录-java-day3
- Linux获取网络接口信息
- 谈谈 char *num="123";和char num[4]="123";的区别