正文

十进制数转换为二进制数2007-01-24 15:20:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/flyprogram/22784.html

分享到:

#include <stdlib.h>
#include <stdio.h>
#define SIZE 32

//输入二进制数,转为十进制数
int main()
{
   
    void f(int b[],int n);      //求乘积
    int fun(int n);             //首位置换
   
    char ch;
    int i = 0,a[SIZE] = {0},j;
    unsigned int s = 0;
   
    printf("输入二进制数:");

    while((ch=getchar())!='\n')   //输入二进制数
    {

       if(ch=='1')
         a[i++] = ch-48;
        
         else if(ch=='0')
            a[i++] = ch-48;
        
            else
            {
           
               printf("error,plz input right format!\n");
               system("pause");
               exit(0);
           
            } 
                         
    }
   
    f(a,i);            //置换
   
    for(j=i-1;j>=0;j--)   //求十进制数
      s = s + a[j]*fun(j);   
   
    printf("十进制数为:%d\n",s);
   
    system("pause");    
   
}
int fun(int n)
{
  
   unsigned int s;
 
   if(n==1)
     s = 2;
     else if(n==0)
         s = 1;
        else
           s = 2*fun(n-1);
 
   return s;     
      
}
void f(int b[],int n)
{
  
    int i,t;
   
    for(i=0;i<n/2;i++)
    {
            t  =   b[n-i-1];
      b[n-i-1] =   b[i];
         b[i]  =   t;
    }     
    
}

阅读(2519) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册