二进制的数据转换到10进制
程序解说:
对于该需求首先是如何接收输入,这面输入采用string的形式接收,然后逐一进行计算权重,最后求和
代码实例:
首先通过string 来接收用户用户输入的2进制字符串
求得字符串的长度:.size()函数
然后是遍历字符串:string[下标索引]
#include <iostream> using namespace std; double pow(double x, int n) { double ans = 1.0; for (int i = 0; i < n; i++) ans = ans * x; return ans; } int main() { int value = 0; cout << "enter binary num "; string input; bool errorFlag = false; cin >> input; int high = input.size(); int j = 0; for (int i =high-1 ; i >=0; i--,j++) { char ch = input[j]; if (ch == '1') value += static_cast <int>(pow(2, i)); else if (ch == '0') value += 0; else { cout << "第" << j+1 << "个字符有误须在0-1之间,详见" << ch; errorFlag = true; } } if (!errorFlag) cout << "decimal value is:"<<value<<"\n"; }
运行结果:
enter binary num 101100
decimal value is:44