Win32 十/二进制转换 小工具
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
TCHAR msg;
int idata, istate = 1;
switch(id)
{
case IDC_BUTTON1:
{
memset(msg , 0, sizeof(msg));
GetDlgItemText(hwnd, IDC_EDIT1, msg, sizeof(msg));
idata = atoi(msg);
if(0 == JudegNumber(msg, sizeof(msg)))
{
MessageBox(hwnd, TEXT("请输入正确格式!"),
TEXT("Tips"), MB_OK | MB_ICONWARNING);
istate = 0;
}
itoa(idata, msg, 2);
if(1 == istate)
SetDlgItemText(hwnd, IDC_EDIT2, msg);
}
break;
case IDC_BUTTON2:
{
memset(msg , 0, sizeof(msg));
GetDlgItemText(hwnd, IDC_EDIT2, msg, sizeof(msg));
idata = BinStrToDec(msg);
itoa(idata, msg, 10);
SetDlgItemText(hwnd, IDC_EDIT1, msg);
}
break;
default:
break;
}
}
//2进制转换为10进制
int BinStrToDec(TCHAR* str)
{
int n, i, k;
int sum = 0;
n=strlen(str);
for(i = 0; i < n; i ++)
{
k = str -'0';
if(k == 1)
{
sum += (int)pow(2, n-i-1);
}
else if(k == 0)
{
continue;
}
else
{
MessageBox(NULL, TEXT("原数据不是二进制数!"), TEXT("Tips"),
MB_OK | MB_ICONWARNING);
}
}
return sum;
}
int JudegNumber(TCHAR *MSG, int inum)
{
int i;
int flag = 1;
for(i = 0; i < inum; i ++)
{
if(MSG >= '0' && MSG <= '9' || MSG == 0 || MSG == '.')
{
;
}
else
{
flag = 0;
}
}
return flag;
}
强烈支持楼主ing…… 确实是小软件!!!!
页:
[1]