当前位置:   article > 正文

C++二进制数转换十进制数_c++二进制转化为十进制

c++二进制转化为十进制

利用权值展开相加的方法来转换。

  1. #include <iostream>
  2. #include <string>
  3. #include <cmath>
  4. int main() {
  5. // 初始化变量
  6. using namespace std;
  7. string num;
  8. while (true) {
  9. // 输入数组,初始化状态机
  10. bool flag = true;
  11. double sum = 0;
  12. cout << "输入二进制数(2退出):";
  13. cin >> num;
  14. // 判断第一项是否为2的ASCII
  15. if (num[0] == 50) {
  16. cout << "程序退出成功!" << endl;
  17. break;
  18. }
  19. // 将数组按照权重相加
  20. for (int i = 0; i < num.size(); i++) {
  21. if (num[i] == 49) { // 判断k项是否为1的ASCII
  22. sum += pow(2, num.size() - i - 1);
  23. cout << pow(2, num.size() - i - 1) << " ";
  24. }
  25. if (num[i] != 49 and num[i] != 48) { // 判断是否不为0或1
  26. cout << "二进制数只能输入0或1!" << "\n" << endl;
  27. flag = false;
  28. break;
  29. }
  30. }
  31. // 判断是否输出
  32. if (flag) {
  33. cout << "\n十进制为:" << sum << "\n" << endl;
  34. num.clear();
  35. }
  36. }
  37. return 0;
  38. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/69507
推荐阅读
相关标签
  

闽ICP备14008679号