当前位置: 首页 > 编程日记 > 正文

蓝桥杯 【基础练习】 十六进制转八进制

问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
注意
输入的十六进制数不会有前导0,比如012A。
  输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
提示
先将十六进制数转换成某进制数,再由某进制数转换成八进制。

一般的思路是将十六进制转换为十进制,然后转换为八进制.

一段示例代码:

#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
long long hex_to_dec(string hex)
{long long dec = 0;   int len = hex.length();  for(int i=0 ;i<len;i++)  {  if(hex[i] >= 'A')  {  dec += (hex[i] - 'A' + 10)*pow(16,len-1-i);   }  else  {  dec += (hex[i] - '0')*pow(16,len-1-i);  }  }  return dec;  
}
void dec_to_oct(long long dec)
{char a[100];   long long s = dec;  int i = 0;  while(s/8 != 0)  {  a[i++] = '0' + s%8;   s = s/8;  }  a[i] = '0' + s; while(i>=0){cout<<a[i--];}
}
int main()
{string str[10];int n;cin>>n;for(int i=0;i<n;i++){cin>>str[i];} for(int i=0;i<n;i++){dec_to_oct(hex_to_dec(str[i]));cout<<endl;}return 0;
}

如果提交上面的代码系统会判定代码错误,因为题目中有一句话:每个十六进制数长度不超过100000。这句话说明该十六进制数有可能是一个长度为100000的数,这不是long long 类型变量所能表示的,这应该就是错误所在。


做大数运算的常用手段就是字符串变量,这里我们使用字符串变量来表示对应的二进制数,得到下面的解法:

#include<iostream>
#include<cstring>
using namespace std;
int main()
{string hex[10];string bin[10];string oct[10];int n;cin>>n;for(int i=0;i<n;i++){cin>>hex[i];} //16进制转2进制for(int i=0;i<n;i++){for(int j=0;j<hex[i].length();j++){switch(hex[i][j]){case '0':bin[i] += "0000";break;case '1':bin[i] += "0001";break;case '2':bin[i] += "0010";break;case '3':bin[i] += "0011";break;case '4':bin[i] += "0100";break;case '5':bin[i] += "0101";break;case '6':bin[i] += "0110";break;case '7':bin[i] += "0111";break;case '8':bin[i] += "1000";break;case '9':bin[i] += "1001";break;case 'A':bin[i] += "1010";break;case 'B':bin[i] += "1011";break;case 'C':bin[i] += "1100";break;case 'D':bin[i] += "1101";break;case 'E':bin[i] += "1110";break;case 'F':bin[i] += "1111";break;default :break;}}} //2进制转8进制for(int i=0;i<n;i++){int len = bin[i].length();int num = 0;int temp = 3;for(int j=len-1;j>=0;j--){if(bin[i][j] == '1') {switch(temp){case 3: num +=1;break;case 2: num +=2;break;case 1: num +=4;break;default:break;}}temp--;if(temp == 0){oct[i] += num + '0';num = 0;temp = 3; }			}if(temp != 0){oct[i] += num + '0'; }} //对8进制数逆序for(int i=0;i<n;i++){char temp;int len = oct[i].length();for(int j=0;j<len/2;j++){temp = oct[i][j];oct[i][j] = oct[i][len-1-j];oct[i][len-1-j] = temp; }} //输出数据for(int i=0;i<n;i++){int len = oct[i].length();int j=0;while(oct[i][j++] == '0');for(--j;j<len;j++){cout<<oct[i][j];}cout<<endl;} return 0;
} 



转载于:https://www.cnblogs.com/zhezh/p/3773335.html

相关文章:

泛在网:泛在网

ylbtech-泛在网&#xff1a;泛在网泛在网络来源于拉丁语Ubiquitous&#xff0c;从字面上看就是广泛存在的&#xff0c;无所不在的网络。也就是人置身于无所不在的网络之中&#xff0c;实现人在任何时间、地点&#xff0c;使用任何网络与任何人与物的信息交换&#xff0c;基于个…

Mac 从Makefile 编译 Rocksdb 源码的一些注意事项

文章目录前言Makefile 编译流程1. 平台变量/环境变量的初始化。2. 编译需要的源码文件变量初始化。3. include 目录的设置。4. 编译的执行逻辑。问题记录1&#xff1a;可能的打包命令ar 失效问题5. 执行具体的编译指令问题记录2: jar 包编译前言 最近在Mac 本地编译Rocksdb 过…

Java项目:在线考试系统(单选,多选,判断,填空,简答题)(java+Springboot+ssm+mysql+html+maven)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能&#xff1a; 学生信息 班级 专业 学号 姓名 在线考试 成绩查询 个人信息 密码修改 教师管理 教师编号 姓名 所教科目 题库管理 单选题 多选题 填空题 判断题&#xff0c;简答题&#xff08;人工…

看了极光推送技术原理的几点思考

看了极光推送技术原理的几点思考 分类&#xff1a; android2012-11-26 20:50 16586人阅读 评论(18) 收藏 举报目录(?)[] 移动互联网应用现状 因为手机平台本身、电量、网络流量的限制&#xff0c;移动互联网应用在设计上跟传统 PC 上的应用很大不一样&#xff0c;需要根据手机…

查询远程或本地计算机的登录账户

用下面这个函数能获取远程或本地电脑的当前登录用户&#xff0c;同时附加了它的计算机名&#xff0c;所以当你查询多台电脑时将知道结果从哪里来。function Get-LoggedOnUser {param([String[]]$ComputerName $env:COMPUTERNAME)$ComputerName | ForEach-Object {(quser /SERV…

LIS ZOJ - 4028

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode4028 memset超时 这题竟然是一个差分约束 好吧呢 对于每一个a[i], l < a[i] < r 那么设一个源点s 使 l < a[i] - s < r 是不是就能建边了 然后对于每一个f[i] 如果前面有一个相等的f[j] 则肯定 a[i…

存储引擎 K/V 分离下的index回写问题

前言 近期在做on nvme hash引擎相关的事情&#xff0c;对于非全序的数据集的存储需求&#xff0c;相比于我们传统的LSM或者B-tree的数据结构来说 能够减少很多维护全序上的计算/存储资源。当然我们要保证hash场景下的高写入能力&#xff0c;append-only 还是比较友好的选择。 …

经典贪心法:时间序列问题及其全局最优性证明

贪心算法是指在对问题求解时&#xff0c;总做出在当前看来是最好的选择。也就是说&#xff0c;不从整体上加以考虑&#xff0c;它所作出的仅仅是在某种意义上的局部最优解。一旦贪心算法求出了一个可行解&#xff0c;就要确定这个算法是否找到了最优解。为此&#xff0c;要么证…

Java项目:在线水果商城系统(java+JSP+Spring+SpringMVC +MyBatis+html+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 功能&#xff1a; 区分为管理员用户和普通用户&#xff0c;普通用户&#xff1a;用户注册登录&#xff0c;首页水果展示&#xff0c;商品分类展示&#xff0c;购物车添加&#xff0c;下单&…

曲苑杂坛--收缩数据库文件

很多人在删除大量数据后收缩数据库&#xff0c;却发现没法收缩到预期效果。 由于使用DBCC SHRINKFILE来收缩数据文件时&#xff0c;是针对数据区来收缩&#xff0c;因此可以先使用DBCC SHOWFILESTATS来查看文件中未使用的分区数(TotalExtents-UsedExtents)&#xff0c;如果删除…

python字典去重

今天实习的web大表哥说帮我看环境不过前提是要我帮他写个python合并列表的demo,大概思路就是利用zip库进行keys和values的遍历&#xff0c;然后在输出就行key1{name1:小明,name2:小红} key2{小明:[men,20],小红:[women,30]} for k,v in zip(key1.values(),key1.keys()):for i, …

关于 线程模型中经常使用的 __sync_fetch_and_add 原子操作的性能

最近从 kvell 这篇论文中看到一些单机存储引擎的优秀设计&#xff0c;底层存储硬件性能在不远的未来可能不再是主要的性能瓶颈&#xff0c;反而高并发下的CPU可能是软件性能的主要限制。像BPS/AEP/Optane-SSD 等Intel 推出的硬件存储栈已经能够在延时上接近DRAM的量级&#xff…

R 语言爬虫 之 cnblog博文爬取

Cnbolg Crawl a). 加载用到的R包 ##library packages needed in this case library(proto) library(gsubfn) ## Warning in doTryCatch(return(expr), name, parentenv, handler): 无法载入共享目标对象‘/Library/Frameworks/R.framework/Resources/modules//R_X11.so’&#…

Java项目:宿舍管理系统(java+jsp+SSM+Spring+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 功能&#xff1a;包括学生管理&#xff0c;班级管理&#xff0c;宿舍管理&#xff0c;人员信息维 护。维修登记&#xff0c;卫生管理&#xff0c;访客管理等等。 二、项目运行 环境配置&am…

项目管理5大过程组,42个过程一句话讲解

2019独角兽企业重金招聘Python工程师标准>>> 启动过程组&#xff1a;&#xff08;1&#xff09;制定项目章程&#xff1a;诞生项目&#xff0c;并为项目经理“正名”&#xff1b;&#xff08;2&#xff09;识别干系人&#xff1a;搞清楚谁与项目相关&#xff1b;规划…

Android Q 变更和新特性

安全和隐私变更 隐私保护是Android Q重要的主题之一&#xff0c;Android Q带来了一系列增强用户隐私保护的变更。 1 应用文件存储空间限制 应用访问限制是Android Q影响最大变更之一。在Android Q系统中&#xff0c;应用只可以通过路径读取自己应用沙箱内的文件&#xff0c;如果…

KVell 单机k/v引擎:用最少的CPU 来调度Nvme的极致性能

文章目录前言KVell背景业界引擎使用Nvme的问题CPU 会是 LSM-kv 存储的瓶颈CPU 也会是 Btree-kv 存储的瓶颈KVell 设计亮点 及 总体架构实现KVell 设计亮点1. Share nothing2. Do not sorted on disk, but keep indexes in memory3. Aim for fewer syscalls , not for sequentia…

android录像增加时间记录(源码里修改)

需要做一个功能&#xff0c;录像和播放时都显示录时的时间&#xff0c;参考文章链接找不到了&#xff0c;不好意思&#xff0c;这里记录一下&#xff0c;防止下次找不到了。另一篇关于源码录像的流程请参考 http://www.verydemo.com/demo_c131_i79000.html 在源码CameraSource.…

Java项目:在线旅游系统(java+jsp+SSM+Spring+mysql+maven)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 功能&#xff1a;用户的登录注册&#xff0c;旅游景点的展示&#xff0c;旅游预订&#xff0c;收藏&#xff0c;购买&#xff0c;以及酒店住宿留言等等&#xff0c;后台管理员&#xff0c;订单…

混合式APP开发中中间件方案Rexsee

发现Rexsee时&#xff0c;他已经一年多没有更新过了&#xff0c;最后版本是2012年的。 他的实现思路是通过Android自带的Java - Javascript 桥机制&#xff0c;在WebView中的JavaScript同Java进行通信&#xff0c;而这样的话即Javascript可以直接创建原生UI界面&#xff0c;以获…

vue 前端框架 (三)

VUE 生命周期 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><script type"text/javascript" src"js/vue.js"></script><link rel"stylesheet" type"te…

Rocksdb 的 MergeOperator 简单使用记录

本篇仅仅是一个记录 MergeOperator 的使用方式。 Rocksdb 使用MergeOperator 来代替Update 场景中的读改写操作&#xff0c;即用户的一个Update 操作需要调用rocksdb的 Get Put 接口才能完成。 而这种情况下会引入一些额外的读写放大&#xff0c;对于支持SQL这种update 频繁的…

Java项目:考试系统Java基础Gui(java+Gui)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能简介&#xff1a; 所属课程、题目内容、题目选项、题目答案、题目等级、学生管理、试卷管理、题目管理、时间控制 服务页面&#xff1a; public class ServerClient extends javax.swing.JFrame {/** …

软件工程需求设计说明书

Java即时通聊天程序 设计需求说明书 专业班级&#xff1a; 计本班1202班 项目组成员&#xff1a; 杨宗坤 刘瑞 满亚洲 指导教师&#xff1a; 张利峰 开始日期&#xff1a; 完成日期&#xff1a; 编写目的&#xff1a; 本说明书是在充分理解系统需求分析…

Nagios 安装文档

安装前的装备工作(1)解决安装Nagios的依赖关系&#xff1a;Nagios基本组件的运行依赖于httpd、gcc和gd。可以通过以下命令来检查nagios所依赖的rpm包是否已经安装完成&#xff1a;#yum -y install httpd gcc glibc glibc-common *gd* php php-mysql mysql mysql-server --skip-…

Comprehensive Guide to build a Recommendation Engine from scratch (in Python) / 从0开始搭建推荐系统...

https://www.analyticsvidhya.com/blog/2018/06/comprehensive-guide-recommendation-engine-python/&#xff0c; 一篇详细的入门级的推荐系统的文章&#xff0c;这篇文章内容详实&#xff0c;格式漂亮&#xff0c;推荐给大家. 下面是翻译&#xff0c;翻译关注的是意思&#x…

关于std::string 在 并发场景下 __grow_by_and_replace free was not allocated 的异常问题

使用string时发现了一些坑。 我们知道stl 容器并不是线程安全的&#xff0c;所以在使用它们的过程中往往需要一些同步机制来保证并发场景下的同步更新。 应该踩的坑还是一个不拉的踩了进去&#xff0c;所以还是记录一下吧。 string作为一个容器&#xff0c;随着我们的append 或…

Java项目:银行管理系统+文档Java基础Gui(java+Gui)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 功能介绍&#xff1a; 登录、打印、取款、改密、转账、查询、挂失、存款、退卡 服务模块&#xff1a; public class atmFrame extends JFrame {private JPanel contentPane;private user user; // private…

ie旋转滤镜Matrix

旋转一个元素算是一个比较常见的需求了吧&#xff0c;在支持CSS3的浏览器中可以使用transform很容易地实现&#xff0c;这里有介绍&#xff1a;http://www.css88.com/archives/2168&#xff0c;这里有演示http://www.css88.com/tool/css3Preview/Transform.html&#xff0c;就不…

音频(3):iPod Library Access Programming Guide:Introduction

NextIntroduction介绍iPod库访问&#xff08;iPod Library Access&#xff09;让应用程序可以播放用户的歌曲、有声书、和播客。这个API设计使得基本播放变得非常简单&#xff0c;同时也支持高级的搜索和播放控制功能。iPod library access 通过打开iOS允许的音乐相关的广阔范围…