分享

二进制到十进制的转换,字符串处理

 BUPT-BYR 2010-12-08
 

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);

}

运行结果如图:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多