Bailian2710 数制转换(POJ NOI0113-01)【进制】
问题链接:POJ NOI0113-01 数制转换。
原题出处:Bailian2710 数制转换。
总时间限制:
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医学部计算概论期末考试
问题分析
这是一个进制转换的问题。
据说阿拉伯数字是印度人发明的。今天,采用阿拉伯数字的记数法被人们普遍采用。而且人们使用的是10进制。
然而,与计算机有关的常用的进制有10进制、8进制和16进制。
程序说明
程序中,函数convert()用于将数s从a进制转换为b进制。
AC的C语言程序:
/* Bailian2710 数制转换 */#include <stdio.h>
#include <ctype.h>#define N 72
char s[N], ans[N];void convert(int a, char s[], int b)
{long val, dcount, digit;int i, j;val = 0;for(i=0; s[i]; i++) {if(isdigit(s[i]))val = val * a + s[i] - '0';elseval = val * a + toupper(s[i]) - 'A' + 10;}dcount = 0;while(val) {digit = val % b;val /= b;ans[dcount++] = ((digit >= 10) ? 'A' - 10 : '0') + digit;}if(dcount == 0) {ans[dcount++] = '0';ans[dcount] = '\0';} elseans[dcount] = '\0';// reversefor(i=0, j=dcount-1; i<j; i++, j--) {char c = ans[i];ans[i] = ans[j];ans[j] = c;}
}int main(void)
{int a, b;scanf("%d%s%d", &a, s, &b);convert(a, s, b);printf("%s\n", ans);return 0;
}
AC的C++语言程序:
#include <iostream>
#include <string>
#include <ctype.h>using namespace std;string convert(int a, string& s, int b)
{long val, dcount, digit;char result[72], c;string ans;val = 0;for(int i=0; i<(int)s.size(); i++) {if(isdigit(s[i]))val = val * a + s[i] - '0';elseval = val * a + toupper(s[i]) - 'A' + 10;}dcount = 0;while(val) {digit = val % b;val /= b;result[dcount++] = ((digit >= 10) ? 'A' - 10 : '0') + digit;}if(dcount == 0) {result[dcount++] = '0';result[dcount] = '\0';} elseresult[dcount] = '\0';// reversefor(int i=0, j=dcount-1; i<j; i++, j--) {c = result[i];result[i] = result[j];result[j] = c;}ans = result;return ans;
}int main()
{int a, b;string s;cin >> a >> s >> b;cout << convert(a, s, b) << endl;return 0;
}
Bailian2710 数制转换(POJ NOI0113-01)【进制】相关推荐
- 计算机常用数制转换说课稿,进制与进制转换说课稿
<数制及其转换> 尊敬的各位老师:大家好!我说课的内容是<数制及其转换>. 一.说教材 1.教材分析 <数制及其转换>是从人民邮电出版社教材<大学计算机基础& ...
- 计算机进位计数制实训课教案,进制转换汇报课教案[五篇]
<进制转换>教学设计 课题:进制之间的转换 教学内容:二进制.八进制.十进制.十六进制之间的转换 教授方法:讲授法 教学目标:了解数制的基本概念 掌握其它进制转十进制和十进制转其它进制的方 ...
- JAVA 进制转换工具类 10进制转16进制 10进制转2进制 16进制转2进制 16进制10进制 2进制转10进制 2进制转16进制
进制转换的坑: 注意:使用Integer的方法转换出来的2进制字符串 最高位是没有补零的 ,java的Integer类的toBinaryString()方法转换出来的二进制字符串只会保留最高非零位以后 ...
- 计算机中各种数制间的转化(10进制与2、8、16进制之间的快速转化)
最近看数据结构的书,回顾下以前学的东西.无意间翻到了stack这章,我就在想,为什么要使用栈这种数据结构?它的底层不也就是数组或者链表来实现的吗?于是,希望能从书中找到答案(其实我之前也猜想,无非是和 ...
- linux 串口 字符 间隔,嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)...
嵌入式linux编程过成中用到zigbee模块 zigbee从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数 (提取特定字符串+字符串转16进制) #include #incl ...
- 进制转换【最全进制转换汇总】(整数_小数_正数_负数)正负数整数小数十进制转任意进制-正负数整数小数任意进制转十进制-正负数低进制转高进制-正负数高进制转低进制
文章目录: 补充知识点:各进制符号表示及其关系--二进制(B).八进制(O).十进制(D).十六进制(前缀OX,后缀H) 扩展:在线进制转换 第一部分:正数 一:[整数]正数十进制转任意进制:辗转相除 ...
- 嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)
嵌入式linux编程过成中用到zigbee模块 zigbee从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数 (提取特定字符串+字符串转16进制) #include<st ...
- 将任意的十进制整数转换成任意R进制数(R在2-16之间)
在c语言中,编程实现将任意的十进制整数转换成任意R进制数(R在2-16之间),源码如下所示: #include <stdio.h> int main(){ void change( ...
- (大数)进制转换 —— 16、8进制转换成2进制
(大数)进制转换 --16.8进制转2进制 16进制转2进制示例代码: #include <iostream> using namespace std; int main(){string ...
最新文章
- RHEL5 kickstart 安装小结
- ASP.NET MVC 学习之路-4
- Spring AOP (事务管理)
- php 利用http上传协议(表单提交上传图片 )
- Windows下Qt Creator设置IDE菜单字体样式
- 在线重定义的补充测试
- 要当好JavaScript程序员:5个debug技巧
- oracle8ir2,Oracle8iR2(oracle8.1.6)在redhat linux 7.1上的简易安装方法
- SAP License:SAP 现金流量表实现方法谈
- utools插件合集 v1.3.5绿色版
- 怎样截屏计算机桌面,如何快速截图? 电脑桌面截图快捷键是哪个【详细介绍】...
- 多“维”优化——前端高并发策略的更深层思考
- 物联网产品的平台架构
- 拼多多 标题 html,【拼多多如何变成新用户】拼多多老用户变新用户教程_拼多多砍价网...
- ACM之路(14)—— 线段树的日常(上)
- img图片加载错误时显示默认图片
- java base64转图片
- 8赛道,64匹马找最快的8匹马
- json tobean
- 角色扮演游戏引擎的设计原理
热门文章
- ArcGIS Maritime Server 开发教程(二)ArcGIS 海图软件系列
- ArcGIS中文注记图层发布服务后变乱码(方框乱码)/如何有效修改注记要素类文字样式
- Go 1.9中值得关注的几个变化
- 抄袭、借鉴与创新,有什么区别?
- IOS开发人员必看的精品资料100
- .net C# Treeview的Node拖动,Node节点上下移动
- 【数据结构的魅力】003.算法归并与随机快排
- c语言定义int 输出4386,C语言 · 矩阵乘法
- java hql多条件查询_JSP 开发之hibernate的hql查询多对多查询
- 导出域控中不活动的计算机_满满干货丨小薇和你聊聊计算机二级的那些事儿