10进制转36进制

10进制转36进制,输出为4位定长

// 10进制转36进制,输出4位定长
#include <windows.h>
#include <iostream>
#include <math.h>
using namespace std;
char Tranf16(int a);
int main()
{
	int test=10000;
	int s3=pow(36,3);
	int s2=pow(36,2);
	int max_10=s3*35+35*s2+35*36+35;
	
	int value_10;
	int chushu[4];
	int yushu[4];
	cout<<"请输入10进制正整数"<<endl;
	cin>>value_10;
	if (value_10>max_10)
	{
		cout<<"输入的10进制超过范围"<<endl;
		return 0;
	}
	int temp_10=value_10;
	chushu[0]=value_10/36;
	yushu[0]=value_10%36;
	int i=0;
	while (temp_10/36)
	{
		
		yushu[i]=temp_10%36;
		temp_10=temp_10/36;
		i=i+1;
	}
	yushu[i]=temp_10%36;
	char *value_36=new char[5];
	value_36[4]='\0';
	int k;
	for (k=0;k<3-i;k++)
	{
		value_36[k]='0';
	}
	for (int j=i;j>=0;j--)
	{
		value_36[k]=Tranf16(yushu[j]);
		k++;
	}
	cout<<value_36<<endl;
	if (value_36!=NULL)
	{
		delete value_36;
	}

}
char Tranf16(int a)
{
	char table16[37]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	return table16[a];
}



   
posted @ 2017-06-14 09:46  白水冰泉  阅读(975)  评论(0编辑  收藏  举报