【蓝桥杯】十六进制转八进制 C++实现
1.题目信息
时间限制:1.0s 内存限制:512.0MB
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由09、大写字母AF组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
【提示】
先将十六进制数转换成某进制数,再由某进制数转换成八进制。
2.算法实现
-
数字输入改写成字符串输入利用switch语句进行16进制到2进制的转换
-
ps:为方便3位3位划分,2进制转8进制,字符串长度不是3的倍数的需要补0
-
通过algorithm库中的reverse函数翻转字符串和+=,完成补0操作,再翻转回来
-
利用switch语句和substr函数进行2进制到8进制的转换
-
去0输出,flag标志判断
3.完整代码
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main()
{string s1,s2,ss;int n;cin>>n;while(n--){s1="";s2="";ss="";cin>>s1;cout<<s1<<" "<<s1.length()<<endl;for(int i=0;i<s1.length();i++){//switch 语句转化16进制为2进制switch(s1[i]){case '0':{s2+="0000";break;}case '1':{s2+="0001";break;}case '2':{s2+="0010";break;}case '3':{s2+="0011";break;}case '4':{s2+="0100";break;}case '5':{s2+="0101";break;}case '6':{s2+="0110";break;}case '7':{s2+="0111";break;}case '8':{s2+="1000";break;}case '9':{s2+="1001";break;}case 'A':{s2+="1010";break;}case 'B':{s2+="1011";break;}case 'C':{s2+="1100";break;}case 'D':{s2+="1101";break;}case 'E':{s2+="1110";break;}case 'F':{s2+="1111";break;}default:break;}}cout<<s2<<" 2进制"<<endl;//不一定是3的约数,所以要往前补0reverse(s2.begin(),s2.end());cout<<s2<<" 反转后"<<endl;int num=s2.length();if(num%3==1)s2+="00";else if(num%3==2)s2+="0";cout<<s2<<" 加0后"<<endl;//反转回来reverse(s2.begin(),s2.end());cout<<s2<<" 再反转"<<endl;//3位3位划分2进制转化为八进制for(int i=0;i<s2.length();i+=3){if(s2.substr(i,3)=="000")ss+="0";else if(s2.substr(i,3)=="001")ss+="1";else if(s2.substr(i,3)=="010")ss+="2";else if(s2.substr(i,3)=="011")ss+="3";else if(s2.substr(i,3)=="100")ss+="4";else if(s2.substr(i,3)=="101")ss+="5";else if(s2.substr(i,3)=="110")ss+="6";else if(s2.substr(i,3)=="111")ss+="7";}cout<<ss<<" 去0前"<<endl;//去0输入int flag=0;for(int i=0;i<ss.length();i++){if(flag==0&&ss[i]=='0')continue;cout<<ss[i];flag=1;}cout<<" 去0后"<<endl;}return 0;
}
4.补充
16进制转10进制
- 16进制转2进制,按字符串处理,同上
- 2进制转10进制,按数处理,用pow函数
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main()
{string s1,s2;s1="";s2="";cin>>s1;for(int i=0;i<s1.length();i++){//switch 语句转化16进制为2进制switch(s1[i]){case '0':{s2+="0000";break;}case '1':{s2+="0001";break;}case '2':{s2+="0010";break;}case '3':{s2+="0011";break;}case '4':{s2+="0100";break;}case '5':{s2+="0101";break;}case '6':{s2+="0110";break;}case '7':{s2+="0111";break;}case '8':{s2+="1000";break;}case '9':{s2+="1001";break;}case 'A':{s2+="1010";break;}case 'B':{s2+="1011";break;}case 'C':{s2+="1100";break;}case 'D':{s2+="1101";break;}case 'E':{s2+="1110";break;}case 'F':{s2+="1111";break;}default:break;}}//2进制转10进制int sum=0;int len=s2.length();for(int i=0;i<len;i++){if(s2[i]=='1')sum+=pow(2,len-i-1);}cout<<sum;return 0;
}
相关文章:
【蓝桥杯】十六进制转八进制 C++实现
1.题目信息 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1<n<10)。 接下来n行,每行一个由09、大写字母AF组成…...

明明设置数字居中对齐,为什么excel的数字却不居中?
有时候在excel里,选中数据,设置对齐方式 左右居中,然而,数字却怎么都不居中,为什么呢? 1.按快捷键Ctrl1,打开单元格自定义格式对话框,看到是初始界面是在数字的会计专用,…...

深入解析API技术:原理、实现与应用
在现代软件开发中,API(应用程序接口)扮演着至关重要的角色。API 允许不同的软件应用程序和系统之间进行通信和数据交换,从而构建出更加高效、灵活和可扩展的软件解决方案。本文将深入解析API技术的原理、实现方法,并附…...
C语言——数组指针变量
一、什么是数组指针 数组指针变量是指向数组的指针,它可以用来遍历数组元素、进行数组操作以及作为函数参数传递数组等操作。在C语言中,数组名本身就是数组的首地址,因此数组指针可以指向数组的首地址。 数组指针变量的基本形式:…...
Redis的过期策略与内存淘汰机制原理及实践
Redis作为高性能的键值存储系统,其对数据过期与内存管理的设计直接影响到系统的性能与资源利用率。本文将以生动的比喻、通俗的语言,深入剖析Redis的过期策略与内存淘汰原理,助您全面理解数据在Redis中的生命周期管理艺术。 一、Redis过期策…...
【24届数字IC秋招总结】提前批面试经验1——小米、百度昆仑芯、长鑫存储
文章目录 前言一、小米-SOC验证工程师1.1 面试问题二、百度昆仑芯-芯片验证工程师2.1 一面面试问题2.2 二面面试问题三、长鑫存储-数字电路前言 提前批面试公司:小米、百度昆仑芯、长鑫存储 一、小米-SOC验证工程师 面试时间:7.23 周末 1.1 面试问题 1、 问研究生项目,自…...
第7章、ReactRedux 实战 - 登录注册验证;
一、登录注册认证系统课程介绍; 1、基本概念; ; 2、代码; 二、搭建前端环境; 1、基本概念; ; 2、代码; 三、搭建后端环境; 1、基本概念; ࿱…...

16路HDMI+AV流媒体IPTV高清编码器JR-3216HD
产品简介: JR-3216HD 16路高清HDMIAV编码器是专业的高清音视频编码产品,该产品具有支持16路高清HDMI音视频采集功能,16路标清AV视频采集功能,16路3.5MM独立外接音频输入,编码输出双码流H.264格式,音频MP3/…...
vscode 配置文件settings.json和c_cpp_properties.json的作用
前言 在 Visual Studio Code (VSCode) 中,settings.json 和 c_cpp_properties.json 都是配置文件,它们分别用于不同的目的。 settings.json settings.json 文件是 VSCode 的用户或工作区设置文件。它允许你自定义 VSCode 的各种行为和外观。 用户设置…...
【postgresql 基础入门】入门教程成形了,八大章节,涵盖库,表,事务,约束,数据类型,聚集函数,轻松入门
Postgresql 基础入门 专栏内容: postgresql内核源码分析手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 序言 Postg…...

【计算机毕业设计】人事管理系统——后附源码
🎉**欢迎来到我的技术世界!**🎉 📘 博主小档案: 一名来自世界500强的资深程序媛,毕业于国内知名985高校。 🔧 技术专长: 在深度学习任务中展现出卓越的能力,包括但不限于…...

OceanBase V4.2 MySQL模式下,如何通过DBLINK实现跨数据源访问
概述 跨数据源访问可通过 DBLINK(以下简称DBLINK)实现,从而使得业务代码能够像访问本地数据库一样轻松访问远端数据库。原先,DBLINK主要服务于Oracle模式,但由于OceanBase 的MySQL模式租户同样存在访问远端数据库的需…...

再谈C语言——理解指针(一)
内存和地址 内存 在讲内存和地址之前,我们想有个⽣活中的案例: 假设有⼀栋宿舍楼,把你放在楼⾥,楼上有100个房间,但是房间没有编号,你的⼀个朋友来找你玩, 如果想找到你,就得挨个房…...
day21-二叉树part08
235. 二叉搜索树的最近公共祖先 相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性无需全部遍历。特点:当前节点在p,q节点之前则必为最近公共祖先 class Solution {public TreeNode lowestCommonAncestor(TreeNo…...
【WPF应用42】WPF中的 GroupBox 控件详解
在 Windows Presentation Foundation (WPF) 中,控件是构建用户界面 (UI) 的基础。WPF 提供了丰富的控件库,其中包括 GroupBox 控件,它用于将相关的 UI 元素组织到逻辑分组中。在本博客文章中,我们将详细介绍 GroupBox 控件的功能、…...

LeetCode-72. 编辑距离【字符串 动态规划】
LeetCode-72. 编辑距离【字符串 动态规划】 题目描述:解题思路一:动规五部曲解题思路二:动态规划【版本二】解题思路三:0 题目描述: 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最…...

多张静图合成gif怎么做?一键极速合成gif
图片的格式有很多种,通常分为静态图片和动态图片。而动态图片基本上都是gif格式,想要把其他格式的静图变成gif格式动图的时候要怎么操作呢?通过使用gif动画图片(https://www.gif.cn/)制作网站,上传jpg、png…...
Es中bool 查询中的四个(must must_not should filter)
1.must :相当于and 2.must_not :相当于not 3.should:相当于or 4. filter:过滤 gte 大于 gt大于 lte小于等于 lt小于 使用示例: {“bool”:{“must”:{“match”:{“title”:”how to make millons “}},“must_not”:{“match”:{“tag”:”spam“}},“should”:[{…...

Docker容器嵌入式开发:Docker Ubuntu18.04配置mysql数据库
在 Ubuntu 18.04 操作系统中安装 MySQL 数据库的过程。下面是安装过程的详细描述: 首先,使用以下命令安装 MySQL 服务器: sudo apt install mysql-server系统会提示是否继续安装,按下 Y 键确认。 安装过程中,系统会…...

C++类和对象中上篇
1.类的6个默认成员函数 如果一个类中什么成员都没有,那就简称他为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。 默认成员函数:用户没有显式实现,…...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
Pod IP 的本质与特性 Pod IP 的定位 纯端点地址:Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址(如 10.244.1.2)无特殊名称:在 Kubernetes 中,它通常被称为 “Pod IP” 或 “容器 IP”生命周期:与 Pod …...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

VisualXML全新升级 | 新增数据库编辑功能
VisualXML是一个功能强大的网络总线设计工具,专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑(如DBC、LDF、ARXML、HEX等),并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...