• 任意进制间的转换


    任意进制间的转换(2~36进制),用数组存储要转换的数字,结果返回整型的十进制数。

    /************************************************************************/
    /* a是要转换的数,bit是原本的进制(2~36)                               */
    /************************************************************************/
    long toTen(char a[],int bit)
    {	
    	long i,b=1,sum=0;
    	int length=strlen(a);
    	for (i=length-1;i>=0;i--)
    	{
    		if (a[i]>='A')
    		{
    			sum+=(a[i]-'A'+10)*b;
    			b*=bit;
    		}
    		else
    		{
    			sum+=(a[i]-'0')*b;
    			b*=bit;
    		}
    	}
    	return sum;
    }

    主函数:

    int main()
    {
    	int aNum;
    	char bNum[20];
    	//以整型读入,转换字符串带入函数,进行进制转换
    	cin>>aNum;	
    	sprintf(bNum,"%d",aNum);
    	cout<<toTen(bNum,8)<<endl;      //假设原本是8进制,代入函数后返回10进制的数
    	
    	//以字符串读入,直接代入函数,进行进制转换
    	cin>>bNum;
    	cout<<toTen(bNum,2)<<endl;      //假设原本是2进制
    
    	//把二进制10110转换为十六进制
    	aNum=toTen("10110",2);
    	itoa(aNum,bNum,16);
    	cout<<bNum<<endl;
    	return 0;
    }


  • 相关阅读:
    [HDU]1086You can Solve a Geometry Problem too
    [HDU]2161Primes
    [HDU]2098分拆素数和
    [HDU]1431素数回文
    [HDU]1527取石子游戏
    [HDU]2092整数解
    [HDU]1405The Last Practice
    [HDU]2565放大的X
    [HDU]1723Distribute Message
    [HDU]1208Pascal's Travels
  • 原文地址:https://www.cnblogs.com/tryitboy/p/4231162.html
Copyright © 2020-2023  润新知