题目
二进制转换成十进制 |
难度级别:A; 运行时间限制:1000ms; 运行空间限制:51200KB; 代码长度限制:2000000B |
试题描述
|
给定一个不超过 10 位的二进制数 n,将其转换成十进制数后输出。 |
输入
|
一个符合规范的二进制的数。
|
输出
|
一个数,符合题目要求的结果。
|
输入示例
|
1000100
|
输出示例
|
68
|
分析
此题考查大家对数学基本知识的了解程度。从二进制转换为十进制的方法为:从右往左数第n位乘2的n次方。
通过while循环(即满足括号里条件是执行操作)进行当n不为零(即未转换完成)时完成一步操作来达到转换的目的。
了解了这个就好办了。
代码
#include<bits/stdc++.h>
using namespace std;
int n,x=1,ans;//x初始值赋-1,当做指数。
int main()
{
scanf("%d",&n);
while(n)//按转换公式计算。
{
ans+=n%10*x;//当前末位的x次方(详见上文转换方法)。
x*=2;//指数增大。
n/=10;//除去刚刚的末位。
}
printf("%d",ans);
return 0;
}