蓝桥杯 基础练习 BASIC-12 十六进制转八进制
2024-09-04 10:50:15
基础练习 十六进制转八进制
时间限制:1.0s 内存限制:512.0MB
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
【提示】
先将十六进制数转换成某进制数,再由某进制数转换成八进制。
示例代码:
//十六进制转二进制,二进制转八进制 #include <iostream>
#include <map>
using namespace std; int main() {
string s; //输入的十六进制
string binaryNum; //二进制数
int n;
cin >> n; string str[] = {"", "", "", "",
"", "", "", "",
"", "", "", "",
"", "", "", ""}; map<string, string> m;
m[""] = ""; m[""] = ""; m[""] = ""; m[""] = "";
m[""] = ""; m[""] = ""; m[""] = ""; m[""] = ""; for (int i = ; i < n; i++)
{
cin >> s;
int len_s = s.length();
for(int j = ; j < len_s; j++)
{
if(s[j] > '')
{
binaryNum += str[s[j] - 'A' + ];
}
else
{
binaryNum += str[s[j] - ''];
}
} int len_b = binaryNum.length(); //二进制数的长度
if(len_b % == ) //将二进制的长度转为3的倍数
{
binaryNum = "" + binaryNum;
}
else if(len_b % == )
{
binaryNum = "" + binaryNum;
} int flag = ; //前导为0标志
string temp; //获取三位二进制数,将其转为八进制
string octalNum; //八进制数
for(int j = ; j < len_b; j += )
{
temp = binaryNum.substr(j, );
octalNum = m[temp];
if(j == && octalNum == "") //如果取出的二进制数前三位为0,则重新取接下来的3位二进制数
{
flag = ;
continue;
}
if(flag == && j == && octalNum == "") //如果接下来的二进制还为0,则继续取(后边取的肯定不是0)
{
continue;
}
cout << octalNum;
} cout << endl;
binaryNum = "";
} return ;
}
最新文章
- servlet内置对象
- js 倒计时实现
- Discuz 模板目录
- 2016年 Delphi Roadmap
- The Flash
- PixelFormat 像素格式
- 全国信息学奥林匹克联赛(NOIP2014)复赛 模拟题Day2 长乐一中
- (C语言)char类型与int类型相加
- 你好,C++(11)如何用string数据类型表示一串文字?根据初始值自动推断数据类型的auto关键字(C++ 11)
- c# splitter控件使用简介
- 剑指offer-面试题11.数值的整数次方
- spring boot 启动问题
- mybatis配置文件说明(configuration)
- Android上显示生僻字的方法
- 2.静态AOP实现-装饰器模式
- jmeter创建高级测试计划
- 洛谷1462(重题1951) 通往奥格瑞玛的道路(收费站_NOI导刊2009提高(2))
- xgboost 和GBDT的区别
- 用HTML+CSS实现--折叠效果
- Redis命令、数据结构场景、配置文件总结
热门文章
- 介绍几个C#正则表达式工具
- LeetCode 之 TwoSum
- scala学习手记20 - 方法返回类型推断
- Android View的生命周期
- 【C#笔札】1 string类型(2)
- c#实现验证某个IP地址是否能ping通
- CMD控制台下的JAVAC就是“不是内部或外部命令
- python3.7安装模块MySQLdb报错error: Microsoft Visual C++ 14.0 is required.
- WSL安装xfce4
- split方法的使用