鱼C论坛

 找回密码
 立即注册
查看: 4145|回复: 2

[技术交流] Win32 十/二进制转换 小工具

[复制链接]
发表于 2012-2-6 17:48:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

复制代码
  1. void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
  2. {
  3.        TCHAR msg[32];
  4.         int idata, istate = 1;

  5.         switch(id)
  6.        {
  7.              case IDC_BUTTON1:
  8.              {
  9.                     memset(msg , 0, sizeof(msg));
  10.                     GetDlgItemText(hwnd, IDC_EDIT1, msg, sizeof(msg));
  11.                     idata = atoi(msg);
  12.                     if(0 == JudegNumber(msg, sizeof(msg)))
  13.                     {
  14.                             MessageBox(hwnd, TEXT("请输入正确格式!"),
  15.                                         TEXT("Tips"), MB_OK | MB_ICONWARNING);
  16.                             istate = 0;
  17.                     }

  18.                     itoa(idata, msg, 2);
  19.                     if(1 == istate)
  20.                    SetDlgItemText(hwnd, IDC_EDIT2, msg);
  21.              }
  22.              break;
  23.             case IDC_BUTTON2:
  24.            {
  25.                 memset(msg , 0, sizeof(msg));
  26.                 GetDlgItemText(hwnd, IDC_EDIT2, msg, sizeof(msg));
  27.                 idata = BinStrToDec(msg);
  28.                 itoa(idata, msg, 10);
  29.                 SetDlgItemText(hwnd, IDC_EDIT1, msg);
  30.            }
  31.            break;
  32.            default:
  33.            break;
  34.        }
  35. }
复制代码
  1. //2进制转换为10进制
  2. int BinStrToDec(TCHAR* str)
  3. {
  4. int n, i, k;
  5. int sum = 0;

  6. n=strlen(str);
  7. for(i = 0; i < n; i ++)
  8. {
  9. k = str[i] -'0';
  10. if(k == 1)
  11. {
  12. sum += (int)pow(2, n-i-1);
  13. }
  14. else if(k == 0)
  15. {
  16. continue;
  17. }
  18. else
  19. {
  20. MessageBox(NULL, TEXT("原数据不是二进制数!"), TEXT("Tips"),
  21. MB_OK | MB_ICONWARNING);
  22. }
  23. }
  24. return sum;
  25. }

  26. int JudegNumber(TCHAR *MSG, int inum)
  27. {
  28. int i;
  29. int flag = 1;

  30. for(i = 0; i < inum; i ++)
  31. {
  32. if(MSG[i] >= '0' && MSG[i] <= '9' || MSG[i] == 0 || MSG[i] == '.')
  33. {
  34. ;
  35. }
  36. else
  37. {
  38. flag = 0;
  39. }
  40. }
  41. return flag;
  42. }
复制代码

未命名.jpg

CODE_6.zip

857.88 KB, 下载次数: 17

小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-4-6 21:35:08 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-10-5 18:46:11 | 显示全部楼层
确实是小软件!!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-8 04:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表