一、问题描述:
二进制数转十进制数。
二、设计思路:
1、输入一个只含有0和1组成二进制的数,并存入一个数组中。
2、进行计算所写的二进制数的长度,并存入另一个数组中。
3、从存入数组中的二进制数的左边第一个数依次进行判断,看是不是为“1”,如果为“1”,则进行计算。算出所在位数的二进制“1”所代表的十进制数,在判断为“1”时的二进制数值转变的十进制数值后,依次进行加和,存入第三个数组中;如果为“0”,则跳过进行下一次判断。直到循环判断到第二个数组的数值。
4、输出二进制所代表的十进制数值。
三、程序流程图
四、代码实现
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
string s;
cin>>s;
int len=s.length();
int n=0;
for(int i=0;i<len;++i)
{
if(s[i]=='1') //其中注意if的判断两个条件相等的符号
n+=pow(2,len-1-i);
}
cout<<n;
return 0;
}