前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >01:数制转换

01:数制转换

作者头像
attack
发布2018-04-03 18:17:11
9340
发布2018-04-03 18:17:11
举报

01:数制转换

总时间限制: 1000ms 内存限制: 65536kB描述

求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。 不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。

输入输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。 a,b是十进制整数,2 =< a,b <= 16。输出输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。样例输入

15 Aab3 7

样例输出

210306

来源2005~2006医学部计算概论期末考试

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstring>
 5 using namespace std;
 6 char a[10001];
 7 int b[10001];
 8 int now;
 9 int tot;
10 int n;//未被转化的进制 
11 int m;//需要转换的进制 
12 int da[10001];
13 char w[20]={'A','B','C','D','E','F'};
14 int main()
15 {
16     cin>>n;
17     scanf("%s",&a);
18     
19     cin>>m;
20     int l=strlen(a);
21     if(a[0]=='0'&&l==1)
22     {
23         cout<<"0";
24         return 0;
25     }
26     for(int i=0;i<l;i++)
27     {
28         if(a[i]>=97&&a[i]<=122)
29         {
30             a[i]=a[i]-32;
31         }
32         if(a[i]>=49&&a[i]<=57)
33         {
34             b[i]=a[i]-48;
35         }
36         else if(a[i]>=65&&a[i]<=90)
37         {
38             b[i]=a[i]-55;
39         }
40     }
41     int ans=0;
42     int now=0;
43     for(int i=l-1;i>=0;i--)
44     {
45         ans=ans+b[i]*(pow(n,now));
46         now++;
47     }
48     int now2=1;
49     while(ans!=0)
50     {
51         int r=ans%m;
52         b[now2]=r;
53         ans=ans/m;
54         now2++;
55     }
56     for(int i=now2-1;i>=1;i--)
57     {
58         if(b[i]<10)
59         cout<<b[i];
60         else 
61         {
62             int k=b[i]-10;
63             cout<<w[k];
64         }
65     }
66     /*for(int i=now2;i>=0;i--)
67     cout<<da[i];*/
68     return 0;
69 }

要注意考虑a是0的情况

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-03-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 01:数制转换
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档