1. 二进制到十进制的转换,字符串处理 /*二进制数转换为十进制数*/ #include <stdio.h> main() { char ch; int sum1=0,count=1,num; double sum2=0,a,i; printf("请输入二进制字符序列,以#结束:\n"); scanf("%c",&ch); num=ch-'0'; while(num!='.'-'0'&&num!='#'-'0') //小数点之前的转换; { if(num==1&&count==1) { sum1=1; count++; } else if(num==0&&count>=2) { sum1=sum1*2; count++; } else if(num==1&&count>=2) { sum1=sum1*2+1; count++; } scanf("%c",&ch); num=ch-'0'; } a=2; while(num!='#'-'0') //小数点之后的转换; { if(num==0||num==1) { i=num/a; sum2=sum2+i; a=a*2; } scanf("%c",&ch); num=ch-'0'; } if(sum2==0) printf("\n该二进制数对应的十进制数是:%d\n",sum1); else printf("\n该二进制数对应的十进制数是:%f\n\n",sum1+sum2); return(0); } 运行结果如图: ![]() |
|