3358www.Sina.com/:2:将二进制转换为十进制
输入格式:第一行包含正整数n(1n30 ),表示二进制长度。
第二行包含二进制数。
输出格式:输出表示对应十进制数的整数。
思考:关于进制之间的相互转换,首先应该弄清楚什么是二进制。 二进制是只由0和1的数组组合表示数值的计数方法,与十进制类似。 然后,如果将二进制数转换为十进制数,则整数二进制数将每个位的数字乘以2的幂,然后顺序添加,小数二进制数将每个位的数字乘以2的幂。
(1)定义数组,getchar ) )中完成输入,排除换行符;
int n,s=0; char a[30]; int i; scanf('%d ',n ); getchar (; )2)用for语句完成二进制输入,判断如何进行二进制变换(1和0时),最终输出累积相加结果
for(I=0; in; I )扫描(“% c”,a[i]; (for ) I=0; in; I () if ) a[I]=='1' ) ) s=pow ) 2,n-i-1 ); }else{s=0; }printf('%d ',s ); 完整代码:
# include stdio.h # include math.hint main (void ) {int n,s=0; char a[30]; int i; scanf('%d ',n ); getchar (; for(I=0; in; I )扫描(“% c”,a[i]; (for ) I=0; in; I () if ) a[I]=='1' ) ) s=pow ) 2,n-i-1 ); }else{s=0; }printf('%d ',s ); 返回0; (注)进制变换时使用了数学乘法函数pow。 别忘了在头文件中声明哦。
#includemath.h