二进制转十进制

#include<stdio.h>
#include<string.h>
int main()
{
 char s[100]={0};
 int n=0,i=0,m=1,sum=0;
 gets(s);
 while(s[i++])
  n++; //统计实际有多少位
 for(i=0;i<n;i++)
 {
   sum=sum+(s[n-i-1]-'0')*m;
   //由于输入是字符,所以减掉'0'得到对应的数值,另外采用低位先加
   m*=2;  //因为高位的权是低位的2倍,所以每加完一位,权乘2
 }
 printf("%d\n",sum);
 return 0;
}

 

posted @ 2019-09-27 09:13  JackieDYH  阅读(3)  评论(0编辑  收藏  举报  来源