准备蓝桥杯-dyx--十六进制转换八进制
来源:互联网 发布:mac note 编辑:程序博客网 时间:2024/05/20 21:20
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
注意
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
39
123ABC
样例输出
71
4435274
4435274
提示
先将十六进制数转换成某进制数,再由某进制数转换成八进制。
#include<iostream>#include<cstring>using namespace std;int main(){ //每一个十六进制的数都可以转换成四位二进制的数。 //1-0001,2-0010,3-0011,4-0100,5-0101,6-0110,7-0111,8-1000,9-1001, //A-1010,B-1011,C-1100,D-1101,E-1110,F-1111,就是这样例如9A就是10011010 //3个二进制为一位八进制. string dyx,wyx;//dyx表示输入的十六进制的字符串,wyx表示转换过来的字符串. int n; cin>>n; while(n--) { cin>>dyx; wyx=""; for(int i=0;i<dyx.length();i++) { switch(dyx[i]) { case'0':wyx+="0000";break; case'1':wyx+="0001";break; case'2':wyx+="0010";break; case'3':wyx+="0011";break; case'4':wyx+="0100";break; case'5':wyx+="0101";break; case'6':wyx+="0110";break; case'7':wyx+="0111";break; case'8':wyx+="1000";break; case'9':wyx+="1001";break; case'A':wyx+="1010";break; case'B':wyx+="1011";break; case'C':wyx+="1100";break; case'D':wyx+="1101";break; case'E':wyx+="1110";break; case'F':wyx+="1111";break; default:break; } } int len=wyx.length(); //修正位数 //在向左(或向右)取三位时,取到最高位(最低位)如果无法凑足三位, //可以补0再进行换算. if(len%3==1) wyx="00"+wyx; else if(len%3==2) wyx="0"+wyx; bool flag; flag=false; for(int i=0;i<=wyx.length()-3;i+=3) { int num=(4*(wyx[i]-'0')+2*(wyx[i+1]-'0')+(wyx[i+2]-'0')); if(num) flag=true; if(flag) cout<<num; } cout<<endl; } return 0;}
0 0
- 准备蓝桥杯-dyx--十六进制转换八进制
- 准备蓝桥杯--dyx--十六进制转换十进制
- 准备蓝桥杯--dyx--十进制转换十六进制
- 蓝桥杯 十六进制转换为八进制
- 蓝桥杯备战-十六进制转换为八进制
- 二进制八进制,十六进制转换
- 十六进制转换为八进制
- 十六进制转换成八进制
- 十六进制转换八进制
- 十六进制转换为八进制
- 十六进制转换成八进制
- 十六进制转换成八进制
- 十六进制转换成八进制
- 二进制、八进制、十六进制转换
- 十六进制转换为八进制
- 准备蓝桥杯--dyx--回文数
- 准备蓝桥杯--dyx--查找整数
- 准备蓝桥杯--dyx--数列特征
- java温度转换,以及类型强制转换
- 欢迎使用CSDN-markdown编辑器
- Ubuntu+Nginx+PHP+ZBlog部署文档
- 3.18
- Java 基础
- 准备蓝桥杯-dyx--十六进制转换八进制
- java简单练习
- 莫比乌斯反演
- Matlab将视频分成连续帧
- 对指定文件夹下的文件批量重命名
- HDU 1061 Rightmost Digit
- 【蓝桥杯】 PREV-1 核桃的数量
- Statement和PreparedStatement之间的区别
- 15第二周项目三——时间类(总)