赞
踩
题目描述
请将一个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; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。