难点 1.何时将"."输出,
由样例输出可知当八位2进制的数字的非32个数字的最后一位的时候要输出.
于是有代码表示 if (i!=31){
printf (".");}
难点 2.怎么简单地将字符型的数字转化为整型
我主页的一篇已经介绍过,即(s[i]-'0');
难点 3.怎么简单地将2进制转化为10进制,
代码实现:(针对整数)2的(原数字的位数-1)次幂,即本代码的pow(2,flag)
#include <stdio.h>
#include <math.h>
int main (void){
char s[32];
int i=0,flag=7;
int sum=0;
scanf ("%32s",s);
for (i=0;i<32;i++){
sum+=(s[i]-'0')*pow(2,flag);
//循环从 指数为 7 开始递减 ,且从数组第一个数进行
//如果以及识别到8个数0-7,一共8个数
if (flag==0){
printf ("%d",sum);
sum=0;
flag=8;
if (i!=31){
printf (".");}
}
flag--;
}
return 0;
}