当前位置: 首页 > news >正文

【蓝桥杯】十六进制转八进制 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.算法实现

  1. 数字输入改写成字符串输入利用switch语句进行16进制到2进制的转换

  2. ps:为方便3位3位划分,2进制转8进制,字符串长度不是3的倍数的需要补0

  3. 通过algorithm库中的reverse函数翻转字符串和+=,完成补0操作,再翻转回来

  4. 利用switch语句和substr函数进行2进制到8进制的转换

  5. 去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.题目信息 时间限制&#xff1a;1.0s 内存限制&#xff1a;512.0MB 问题描述 给定n个十六进制正整数&#xff0c;输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n &#xff08;1<n<10&#xff09;。 接下来n行&#xff0c;每行一个由09、大写字母AF组成…...

明明设置数字居中对齐,为什么excel的数字却不居中?

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

深入解析API技术:原理、实现与应用

在现代软件开发中&#xff0c;API&#xff08;应用程序接口&#xff09;扮演着至关重要的角色。API 允许不同的软件应用程序和系统之间进行通信和数据交换&#xff0c;从而构建出更加高效、灵活和可扩展的软件解决方案。本文将深入解析API技术的原理、实现方法&#xff0c;并附…...

C语言——数组指针变量

一、什么是数组指针 数组指针变量是指向数组的指针&#xff0c;它可以用来遍历数组元素、进行数组操作以及作为函数参数传递数组等操作。在C语言中&#xff0c;数组名本身就是数组的首地址&#xff0c;因此数组指针可以指向数组的首地址。 数组指针变量的基本形式&#xff1a…...

Redis的过期策略与内存淘汰机制原理及实践

Redis作为高性能的键值存储系统&#xff0c;其对数据过期与内存管理的设计直接影响到系统的性能与资源利用率。本文将以生动的比喻、通俗的语言&#xff0c;深入剖析Redis的过期策略与内存淘汰原理&#xff0c;助您全面理解数据在Redis中的生命周期管理艺术。 一、Redis过期策…...

【24届数字IC秋招总结】提前批面试经验1——小米、百度昆仑芯、长鑫存储

文章目录 前言一、小米-SOC验证工程师1.1 面试问题二、百度昆仑芯-芯片验证工程师2.1 一面面试问题2.2 二面面试问题三、长鑫存储-数字电路前言 提前批面试公司:小米、百度昆仑芯、长鑫存储 一、小米-SOC验证工程师 面试时间:7.23 周末 1.1 面试问题 1、 问研究生项目,自…...

第7章、ReactRedux 实战 - 登录注册验证;

一、登录注册认证系统课程介绍&#xff1b; 1、基本概念&#xff1b; &#xff1b; 2、代码&#xff1b; 二、搭建前端环境&#xff1b; 1、基本概念&#xff1b; &#xff1b; 2、代码&#xff1b; 三、搭建后端环境&#xff1b; 1、基本概念&#xff1b; &#xff1…...

16路HDMI+AV流媒体IPTV高清编码器JR-3216HD

产品简介&#xff1a; JR-3216HD 16路高清HDMIAV编码器是专业的高清音视频编码产品&#xff0c;该产品具有支持16路高清HDMI音视频采集功能&#xff0c;16路标清AV视频采集功能&#xff0c;16路3.5MM独立外接音频输入&#xff0c;编码输出双码流H.264格式&#xff0c;音频MP3/…...

vscode 配置文件settings.json和c_cpp_properties.json的作用

前言 在 Visual Studio Code (VSCode) 中&#xff0c;settings.json 和 c_cpp_properties.json 都是配置文件&#xff0c;它们分别用于不同的目的。 settings.json settings.json 文件是 VSCode 的用户或工作区设置文件。它允许你自定义 VSCode 的各种行为和外观。 用户设置…...

【postgresql 基础入门】入门教程成形了,八大章节,涵盖库,表,事务,约束,数据类型,聚集函数,轻松入门

Postgresql 基础入门 ​专栏内容&#xff1a; postgresql内核源码分析手写数据库toadb并发编程 个人主页&#xff1a;我的主页 管理社区&#xff1a;开源数据库 座右铭&#xff1a;天行健&#xff0c;君子以自强不息&#xff1b;地势坤&#xff0c;君子以厚德载物. 序言 Postg…...

【计算机毕业设计】人事管理系统——后附源码

&#x1f389;**欢迎来到我的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 一名来自世界500强的资深程序媛&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 在深度学习任务中展现出卓越的能力&#xff0c;包括但不限于…...

OceanBase V4.2 MySQL模式下,如何通过DBLINK实现跨数据源访问

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

再谈C语言——理解指针(一)

内存和地址 内存 在讲内存和地址之前&#xff0c;我们想有个⽣活中的案例&#xff1a; 假设有⼀栋宿舍楼&#xff0c;把你放在楼⾥&#xff0c;楼上有100个房间&#xff0c;但是房间没有编号&#xff0c;你的⼀个朋友来找你玩&#xff0c; 如果想找到你&#xff0c;就得挨个房…...

day21-二叉树part08

235. 二叉搜索树的最近公共祖先 相对于 二叉树的最近公共祖先 本题就简单一些了&#xff0c;因为 可以利用二叉搜索树的特性无需全部遍历。特点&#xff1a;当前节点在p&#xff0c;q节点之前则必为最近公共祖先 class Solution {public TreeNode lowestCommonAncestor(TreeNo…...

【WPF应用42】WPF中的 GroupBox 控件详解

在 Windows Presentation Foundation (WPF) 中&#xff0c;控件是构建用户界面 (UI) 的基础。WPF 提供了丰富的控件库&#xff0c;其中包括 GroupBox 控件&#xff0c;它用于将相关的 UI 元素组织到逻辑分组中。在本博客文章中&#xff0c;我们将详细介绍 GroupBox 控件的功能、…...

LeetCode-72. 编辑距离【字符串 动态规划】

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

多张静图合成gif怎么做?一键极速合成gif

图片的格式有很多种&#xff0c;通常分为静态图片和动态图片。而动态图片基本上都是gif格式&#xff0c;想要把其他格式的静图变成gif格式动图的时候要怎么操作呢&#xff1f;通过使用gif动画图片&#xff08;https://www.gif.cn/&#xff09;制作网站&#xff0c;上传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小于 使用示例&#xff1a; {“bool”:{“must”:{“match”:{“title”:”how to make millons “}},“must_not”:{“match”:{“tag”:”spam“}},“should”:[{…...

Docker容器嵌入式开发:Docker Ubuntu18.04配置mysql数据库

在 Ubuntu 18.04 操作系统中安装 MySQL 数据库的过程。下面是安装过程的详细描述&#xff1a; 首先&#xff0c;使用以下命令安装 MySQL 服务器&#xff1a; sudo apt install mysql-server系统会提示是否继续安装&#xff0c;按下 Y 键确认。 安装过程中&#xff0c;系统会…...

C++类和对象中上篇

1.类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;那就简称他为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 默认成员函数&#xff1a;用户没有显式实现&#xff0c;…...

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

JAVA后端开发——多租户

数据隔离是多租户系统中的核心概念&#xff0c;确保一个租户&#xff08;在这个系统中可能是一个公司或一个独立的客户&#xff09;的数据对其他租户是不可见的。在 RuoYi 框架&#xff08;您当前项目所使用的基础框架&#xff09;中&#xff0c;这通常是通过在数据表中增加一个…...