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

[保研/考研机试] KY80 进制转换 北京大学复试上机题 C++实现

题目链接:

KY80 进制转换icon-default.png?t=N6B9https://www.nowcoder.com/share/jump/437195121691735660774

描述

写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串(注意可能存在的一个测试用例里的多组数据)。

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。

示例1

输入:

0xA

输出:

10

思路:

  1. 读入十六进制数值字符串 s。

  2. 初始化结果字符串 res 为 "0",表示最终的十进制结果。

  3. 从字符串的第三位开始遍历,即从十六进制数值的有效部分开始,因为前两位为 "0x" 表示十六进制前缀。

  4. 在遍历过程中,先将结果字符串 res 乘以 16,相当于将十六进制数值左移 4 位。

  5. 再将当前字符代表的值加到结果字符串 res 中,通过调用 Add 函数实现。

  6. 输出最终的十进制结果。

源代码:

#include <iostream>
#include <string>
using namespace std;// 将十六进制字符转换为对应的整数
int CharToInt(char c) {if (c >= '0' && c <= '9') {return c - '0';  // 数字字符直接转换} else {return c - 'A' + 10;  // 字母字符转换,a 对应 10,b 对应 11,依此类推}
}// 将字符串表示的十六进制数与整数 x 相乘
string multiple(string str, int x) {int carry = 0;  // 进位string result;  // 存放结果for (int i = str.size() - 1; i >= 0; i--) {int current = x * CharToInt(str[i]) + carry; // 计算当前位的结果result = char(current % 10 + '0') + result;  // 将当前位的结果插入到结果的前面carry = current / 10;  // 更新进位}while (carry != 0) {result = char(carry % 10 + '0') + result;  // 处理剩余的进位carry /= 10;}return result;
}// 将字符串表示的十六进制数与整数 x 相加
string Add(string str, int x) {int carry = x;  // 初始进位为 xstring result;  // 存放结果for (int i = str.size() - 1; i >= 0; i--) {int current = CharToInt(str[i]) + carry; // 计算当前位的结果result = char(current % 10 + '0') + result;  // 将当前位的结果插入到结果的前面carry = current / 10;  // 更新进位}while (carry != 0) {result = char(carry % 10 + '0') + result;  // 处理剩余的进位carry /= 10;}return result;
}int main() {string s;while (cin >> s) {string res = "0";  // 初始化结果为0for (int i = 2; i < s.size(); i++) {res = multiple(res, 16);  // 乘以16,相当于左移4位res = Add(res, CharToInt(s[i]));  // 加上当前字符代表的值}cout << res << endl;  // 输出最终结果}return 0;
}

提交结果:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

相关文章:

[保研/考研机试] KY80 进制转换 北京大学复试上机题 C++实现

题目链接&#xff1a; KY80 进制转换https://www.nowcoder.com/share/jump/437195121691735660774 描述 写出一个程序&#xff0c;接受一个十六进制的数值字符串&#xff0c;输出该数值的十进制字符串(注意可能存在的一个测试用例里的多组数据)。 输入描述&#xff1a; 输…...

AP2915DC-DC降压恒流驱动IC LED电源驱动芯片 汽车摩托电动车灯

AP2915 是一款可以一路灯串切换两路灯串的降压 恒流驱动器,高效率、外围简单、内置功率管&#xff0c;适用于 5-80V 输入的高精度降压 LED 恒流驱动芯片。内置功 率管输出功率可达 12W&#xff0c;电流 1.2A。 AP2915 一路灯亮切换两路灯亮&#xff0c;其中一路灯亮可 以全亮&a…...

Android 实现无预览拍照功能

Android 实现无预览拍照功能 1.权限 需要相机、读写文件、悬浮窗权限 申请相机、读写文件 manifest.xml <uses-permission android:name"android.permission.CAMERA" /> <uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE…...

第一章-数据结构绪论

第一章-数据结构绪论 数据结构的起源和相关概念 数据结构是一门研究非数值计算的程序设计问题中的操作对象&#xff0c;以及它们之间的关系和操作等相关问题的学科。 程序设计的实质是选择一个好的结构&#xff0c;再设计一种好的算法。 数据&#xff1a;是描述客观事物的符…...

20、stm32使用FMC驱动SDRAM(IS42S32800G-6BLI)

本文将使用安富莱的STM32H743XIH板子驱动SDRAM 引脚连接情况 一、CubeMx配置工程 1、开启调试口 2、开启外部高速时钟 配置时钟树 3、开启串口1 4、配置MPU 按照安富莱的例程配置&#xff1a; /* ********************************************************************…...

git仓库大文件导致仓库体积增大处理

一、删除大文件 git filter-branch --tree-filter rm -rf path/to/large/file --prune-empty HEAD二、提交到远程 git push -f origin main PS&#xff1a;-f必须参数&#xff0c;强制刷新PS&#xff1a;git设计是为了存储代码&#xff0c;一般不将大文件上传到仓库...

将游戏坐标转化成屏幕鼠标坐标

将游戏坐标转化成屏幕鼠标坐标 思路说明&#xff1a;转化其实是取得两点的相对位置&#xff0c;例如将游戏人物移动到另外一个位置&#xff08;游戏人物初始位置坐标到目的位置坐标&#xff09;&#xff0c;鼠标需要移动到屏幕的某个位置。算出游戏的移动距离&#xff0c;游戏…...

springboot中Instant时间传参及序列化

在部分场景中&#xff0c;后台的时间属性用的不是Date或Long&#xff0c;而是Instant&#xff0c;Java8引入的一个精度极高的时间类型&#xff0c;可以精确到纳秒&#xff0c;但实际使用的时候不需要这么高的精确度&#xff0c;通常到毫秒就可以了。 而在前后端传参的时候需要…...

nacos安装与启动相关问题(启动闪退和显示此站点的连接不安全)

问题&#xff1a;启动闪退 尝试&#xff1a; 使用记事本打开cmd文件&#xff0c;在文件结尾处新增两行 pause endlocal 如果还有问题&#xff1a;ERROR Nacos failed to start, please see D:\dev\nacos\logs\nacos.log for more details 尝试&#xff1a; 在nacos的bin目…...

51单片机学习--DS18B20温度读取温度报警器

需要先编写OneWire模块&#xff0c;再在DS18B20模块中调用OneWire模块的函数 先根据原理图做好端口的声明&#xff1a; sbit OneWire_DQ P3^7;接下来像之前一样把时序结构用代码模拟出来&#xff1a; unsigned char OneWire_Init(void) {unsigned char i;unsigned char Ac…...

PYTHON专栏

PYTHON专栏 python基础教程 python基础教程 Python练手算法 Python练手算法 Python设计模式 Python设计模式 MySQL教程 MySQL教程 ORM框架SQLAlchemy Python ORM框架SQLAlchemy Python Web框架Django Python Web框架Django Web框架FastAPI Web框架FastAPI http库request…...

从初学者到专家:Java运算符的完整指南

目录 1.算数运算符 2.增量运算符 2.1自增/自减运算符 4. 逻辑运算符 5.位运算符 6.移位运算符 7. 条件运算符 导言&#xff1a; Java作为一门广泛使用的编程语言&#xff0c;其运算符是编写代码时必不可少的一部分。本篇博客将为你详细介绍Java中的各种运算符&#xf…...

Linux:shell脚本:基础使用(3)

for循环语句 语句格式 for for变量 in 取值列表&#xff08;可以是变量或者自己定义&#xff09; do 循环内容 done 工作方式就是通过取值列表去判断循环的次数&#xff0c;每次循环的同时把列表一行的值赋予到for变量。取值方式如果是数字&#xff0c;那就通过数字去…...

opencv基础46-图像金字塔02-拉普拉斯金字塔

前面我们介绍了高斯金字塔&#xff0c;高斯金字塔是通过对一幅图像一系列的向下采样所产生的。有时&#xff0c;我们希望通过对金字塔中的小图像进行向上采样以获取完整的大尺寸高分辨率图像&#xff0c;这时就需要用到拉普拉斯金字塔 前面我们已经介绍过&#xff0c;一幅图像在…...

到 2030 年API 攻击预计将激增近 1000%

导读云原生应用程序编程接口管理公司 Kong 联合外部经济学家的最新研究预计&#xff0c;截至 2030 年 API 攻击将激增 996%&#xff0c;意味着与 API 相关的网络威胁的频率和强度都显着升级。 这项研究由 Kong 分析师和布朗大学副教授 Christopher Whaley 博士合作进行&#x…...

环形队列+DMA空闲中断+接收串口数据

环形队列DMA空闲中断接收串口数据 一.序言二.实验原理三.实战是检验真理的唯一标准3.1 usart1.c3.2 串口中断 三.队列代码4.1 fifo.c4.2 fifo.h 五.结语 一.序言 本次实验利用环形队列DMA空闲中断串口。。通过这个实验可以非常深入的理解队列&#xff0c;DMA,串口的知识。如果…...

LeetCode 31题:下一个排列

目录 题目 思路 代码 题目 整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下这些都可以视作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序…...

CMake:检测python模块和包

CMake:检测python模块和包 导言项目结构CMakeLists.txt相关源码 导言 上一篇&#xff0c;我们基本了解了如何去检测python的解释器和python库。通常&#xff0c;代码是依赖于特定的python模块&#xff0c;无论是python工具、嵌入python的程序&#xff0c;还是扩展python的库。…...

02Mysql之多表查询--例题讲解

一、题目详情&#xff0c;以及表的建立 新增员工表emp和部门表deptcreate table dept (dept1 int ,dept_name varchar(11));create table emp (sid int ,name varchar(11),age int,worktime_start date,incoming int,dept2 int);insert into dept values(101,财务),(102,销售)…...

虹科方案 | 汽车总线协议转换解决方案

汽车总线&#xff1a; 汽车总线是一种用于在车辆电子系统中传输数据和控制信息的通信系统。它允许不同的电子控制单元&#xff08;ECU&#xff09;在车辆中相互通信&#xff0c;协调各个系统的操作&#xff0c;以实现功能的集成和协同工作。 在现代汽车中&#xff0c;综合通信…...

Node-RED不只是玩具:手把手教你用Modbus节点对接PLC实现数据采集与转发

Node-RED不只是玩具&#xff1a;手把手教你用Modbus节点对接PLC实现数据采集与转发 在工业物联网(IIoT)领域&#xff0c;数据采集与转发是连接物理设备与数字世界的桥梁。传统编程方式往往需要编写大量底层代码&#xff0c;而Node-RED以其可视化编程特性&#xff0c;正在成为工…...

GPT-5越狱攻击PROMISQROUTE深度解析:从提示词工程到AI安全防御

1. 项目概述&#xff1a;一次针对GPT-5的“越狱”概念验证最近在安全研究社区里&#xff0c;一个名为“PROMISQROUTE”的GPT-5越狱概念验证&#xff08;PoC&#xff09;引起了我的注意。这本质上是一个精心设计的提示词工程攻击&#xff0c;它通过角色扮演和规则重构&#xff0…...

TVBoxOSC终极指南:5分钟在电视盒子上搭建智能媒体中心

TVBoxOSC终极指南&#xff1a;5分钟在电视盒子上搭建智能媒体中心 【免费下载链接】TVBoxOSC TVBoxOSC - 一个基于第三方项目的代码库&#xff0c;用于电视盒子的控制和管理。 项目地址: https://gitcode.com/GitHub_Trending/tv/TVBoxOSC 想不想把家里的旧电视盒子变成…...

Win10或LTSC如何彻底关闭或卸载Windows Defender

Win10或LTSC如何彻底关闭或卸载Windows Defenderwin10的LTSC或企业版优先用组策略关闭篡改防护&#xff1b; 要彻底卸载&#xff0c;可以用专用工具则更干净&#xff1b; Win10/LTSB/LTSC&#xff1a;彻底关闭 / 卸载 Windows Defender&#xff08;一&#xff09;最稳妥的操作&…...

AMD Versal VP1902 SoC:突破芯片仿真与原型设计瓶颈

1. AMD Versal Premium VP1902&#xff1a;重新定义SoC仿真与原型设计的边界在芯片设计领域&#xff0c;仿真和原型验证环节往往成为整个开发流程的瓶颈。传统解决方案要么受限于处理规模&#xff0c;要么面临性能与灵活性的取舍。AMD最新推出的Versal Premium VP1902自适应SoC…...

华为S5700三层交换机组网:静态路由与默认路由到底怎么选?一个实验讲透区别与配置要点

华为S5700三层交换机组网实战&#xff1a;静态路由与默认路由的黄金选择法则 当你面对一个跨VLAN通信的网络设计时&#xff0c;是否经常在静态路由和默认路由之间犹豫不决&#xff1f;这两种路由方式看似简单&#xff0c;但在实际组网中却蕴含着深刻的设计哲学。本文将带你深入…...

Cursor Pro终极激活指南:三步解锁免费AI编程完整功能

Cursor Pro终极激活指南&#xff1a;三步解锁免费AI编程完整功能 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your tria…...

Kubernetes Pod启动耗时仅剩113ms,但函数首请求仍卡480ms?:Java Agent无侵入式类预加载技术首次开源解析

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;云原生 Java 函数冷启动毫秒级优化 Java 在云原生函数计算&#xff08;如 Knative Serving、OpenFaaS-Java、AWS Lambda Custom Runtime&#xff09;中长期面临冷启动延迟高&#xff08;常达 800ms–3s…...

【深度解析】AI Design-to-Code 工作流:从视觉概念到可运行前端原型

摘要 Claude Design 与新版 Codex 代表了 AI 设计工具的新方向&#xff1a;不再停留于图片生成&#xff0c;而是将视觉概念、界面代码、响应式适配和迭代优化连接成完整开发链路。本文结合实战代码&#xff0c;解析 Design-to-Code 的核心流程。 背景介绍&#xff1a;AI 设计工…...

终极解决方案:30秒快速重置JetBrains IDE试用期,免费延长开发工具使用时间

终极解决方案&#xff1a;30秒快速重置JetBrains IDE试用期&#xff0c;免费延长开发工具使用时间 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否曾经因为JetBrains IDE试用期到期而中断开发工作&#xff…...