木之夏  
海纳百川,有容乃大;壁立千仞,无欲则刚

二进制的数据转换到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

 

posted on 2021-02-13 19:11  木之夏  阅读(443)  评论(0编辑  收藏  举报