• 2005-09-24

    进制转换程序

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://zichuan.blogbus.com/logs/1458801.html

    #include<iostream.h>
    void convert (int x,int n)     //n为转换后的进制
    {int s[20],y,temp=0,i=4,t=0,z=0,j=0;
     int top=0;
     if(n==16)  //测试是否为十六进制,如果是,先转化为二进制求解
     {temp=1;
      n=2;}
      while(x)
     {y=x%n;
      s[++top]=y;
      x=x/n;
      }
      if(!temp)  //二进制和八进制的输出
     {while(top>0)
      {cout<<s[top];
       top--;
      }
     }
      else   //十六进制的输出
      {while(top>0)
      {
        while(top&&i)
       { z=s[top--];
        for(j=4-i;j>0;j--) 
              z=z*2;
            t=t+z;
        i--;
       }
       if(t<10)
       cout<<t;
       else
       {switch(t)
         {case '10': cout<<'A';break;
          case '11': cout<<'B';break;
          case '12': cout<<'C';break;
          case '13': cout<<'D';break;
          case '14': cout<<'E';break;
          case '15': cout<<'F';break;
         }
       }
      i=4;
      }
      }
      cout<<endl;
    }
    void main()
    {int m,s;
     cout<<"输入一个十进制数:";
     cin>>m;
     cout<<"输入将要转化的进制:"<<endl;
     cin>>s;
     convert(m,s);
    }


    收藏到:Del.icio.us




    评论

  • 我现在用的是vb,不怎么看得懂c#的代码,不过看到你的总结,心里感觉十分不错的!一定要继续。