进制之间的转换

直接上代码吧,当然很不完善,留待日后进行修改。。。

#include<iostream>
using namespace std;

void change(char * arr,int a,int b)
{
   //arr 是操作数组,a是操作数进制,b是目标进制
   int value=0,i=0;
   int temp;
   int len=strlen(arr);
   /*所有的进制先转化为十进制*/
   while(len--)
   {
      value=value*a+*(arr+len)-'0';
   }
   while(value)
   {
      temp=value%b;
      value=value/b;
      i++;
      cout<<temp;
   }
}
   
void convert(char *str)
{
    int sum=0;
    while(*str!='\0')
    {
        if(*str>'0' && *str<'9')
        {
            sum=sum*16+*str-'0';
        }
        else
        {
            sum=sum*16+*str-65;
        }
        str++;
    }
    cout<<"十进制数是:" << sum << endl;
    
}

int main()
{
    char str[10];
    cout<< "输入十六进制数:" << endl;
    cin>>str;
    convert(str);
    change(str,2,10);
    system("pause");
    return 0;
}

 

posted @ 2013-07-09 16:16  Air Support  阅读(169)  评论(0编辑  收藏  举报