开发工具:
文件大小: 51kb
下载次数: 0
上传时间: 2006-05-15
详细说明: 总结了一下关于2进制8进制,10进制16进制之间的转换问题,特意写了一个Demo供大家参考,数据输入未做校验,就是说,输入2进制的数据时,可以数据大于2的数值,程序不给出错误提示,但在转换的时候会有显示超出,请大家用的时候,按照标准输入,不要输入一些非法数值.也不要把输入的10进制当2进制转换.好了,我简单说一下这个程序的一个重要算法,具体还的看代码中注释: //将表达式中的十六进制数转换成十进制 void CTodataDlg::Hex2Dec(CString *strExp) \{ int len,i; DWORD strleng = strExp->GetLength(); CString strTmp,strDF; char ch; double dx; if(strleng !=0 || strleng != -1) \{ dx=0; strTmp=""; strDF=""; strExp->Delete(strleng,2); for(i=strleng-1;i>=0;i--) \{ ch=strExp->GetAt(i); if(ch& gt;=48 && ch<=57 || ch>=97 && ch<=102 ||ch==46) \{ strTmp.Insert(0,strExp->Mid(i,1)); strExp->Delete(i); } else break; } strTmp.MakeReverse(); len=strTmp.GetLength(); for(i=0;i=48 && ch<=57)//该数在0~9之间 \{ dx+=(ch-48)*pow(16,i); } else if(ch>=97 && ch<=102)//该数在a~f之间 \{ dx+=(ch-87)*pow(16,i); } } len=strDF.GetLength(); for(i=0;i=48 && ch<=57)//该数在0~9之间 \{ dx+=(ch-48)*pow(16,-i-1); } else if(ch>=97 && ch<=102)//该数在a~f之间 \{ dx+=(ch-87)*pow(16,-i-1); } } strTmp=NtoS(dx); strExp->Empty(); strExp->Insert(0,strTmp); } } 看看,这样是不是注释的很清楚!!??对于数值转换的新手很有帮助,对于做一款计算器之类东西也有一定的参考价值. 有问题可以和我交流http://www.fishsky.com.cn ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.