01:数制转换
2018-06-17 23:13:46来源:未知 阅读 ()
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的情况
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:22:神奇的幻方
下一篇:16:矩阵剪刀石头布
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++中强制类型转换的应用(第一次) 2020-04-09
- [题记]字符串转换整数-leetcode 2020-04-03
- c++中的类型转换 2020-03-01
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash