标签:进制 title page 表达 include name ring 计算 pre
求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。
15 Aab3 7
210306
1 #include<cstdio> 2 #include<cstring> 3 #include<cmath> 4 using namespace std; 5 char n[1000]; 6 int main() 7 { 8 int a,b,s=0,ans=0,z,k=0,r=0,sp[1000]; 9 scanf("%d %s %d",&a,n,&b); 10 if(n[0]==‘0‘) 11 { 12 printf("0"); 13 return 0; 14 } 15 int x=strlen(n); 16 for(int i=x-1,k=0;i>=0;i--,k++) 17 { 18 if(n[i]>=‘A‘&&n[i]<=‘Z‘) 19 { 20 z=pow(a,k); 21 s=(n[i]-65+10)*z; 22 } 23 else if(n[i]>=‘a‘&&n[i]<=‘z‘) 24 { 25 z=pow(a,k); 26 s=(n[i]-97+10)*z; 27 } 28 else 29 { 30 z=pow(a,k); 31 s=(n[i]-‘0‘)*z; 32 } 33 ans+=s; 34 } 35 while(ans>0) 36 { 37 sp[r++]=ans%b; 38 ans/=b; 39 } 40 for(int i=r-1;i>=0;i--) 41 { 42 sp[i]>=10?printf("%c",sp[i]-10+‘A‘):printf("%d",sp[i]); 43 } 44 return 0; 45 }
标签:进制 title page 表达 include name ring 计算 pre
原文地址:http://www.cnblogs.com/zby-ccsygz/p/6193752.html