作者在 2008-12-29 17:22:27 发布以下内容
因为工作需要经常要用到16进制转换为10进制、8进制和2进制,所以现在想自己写一个进制转换工具程序,现在的问题主要是如何判断EDIT控件内的数是否16进制数。代码如下:
CString a;
unsigned long b=0;
unsigned long c=0;
unsigned long q=0;
GetDlgItemText(IDC_EDIT2,a); //è¡μñà¼-¿òÄúËùóDÎı¾
a.MakeUpper();//è«2¿×a»»Îa′óD′
for(int i=0;i<a.GetLength();i++)
{
if(a.GetAt(i)>='A' && a.GetAt(i)<='F') b=a.GetAt(i)-55;
else if(a.GetAt(i)>='0' && a.GetAt(i)<='9') b=a.GetAt(i)-0x30;
else
{
MessageBox("êäèëμØÖ·2»Õyè·£¡",NULL,MB_OKCANCEL);
exit(1);
}
q=(unsigned long)pow(16,a.GetLength()-i-1);
c=b*q+c;
}