题目
题目描述
请将一个25位以内的2进制正整数转换为10进制!
输入
一个25位以内的二进制正整数
输出
该数对应的十进制
样例输入
111111111111111111111111
样例输出
16777215
程序实现
#include <iostream>
using namespace std;
string s; // 存放二进制
int r, i, t = 1; // t:表示权重
int main(){
/*
思路:
从最低位开始(s.size()-1),倒过来计算(按权展开)
s[i] - '0'
准备变量 t 表示 2 的 n 次方,t = 1 每循环一次,t = t * 2
*/
cin >> s;
for(i = s.size() - 1; i >= 0; i--){
r = r + (s[i] - '0') * t;
t = t * 2;
}
cout << r;
}