十进制转任意进制(以及任意进制来回转换<了解>)
十进制转任意进制:
#include <iostream>
#include <vector>
#include <string> using namespace std; // 将十进制数转换为P进制形式的字符串
string toBase(int num, int base) {string result = ""; // 初始化结果字符串为空while (num > 0) { // 当num大于0时执行循环int digit = num % base; // 计算num除以base的余数char digitChar; // 定义字符变量用于表示余数对应的字符if (digit >= 10) { // 如果余数大于等于10digitChar = 'A' + digit - 10; // 将余数转换为对应的字母(大写)} else { // 否则余数为个位数digitChar = '0' + digit; // 将余数转换为对应的字符}result = digitChar + result; // 将当前字符添加到结果字符串的开头num /= base; // 更新num为num除以base的商}return result; // 返回转换后的P进制字符串
}int main() {cout << "请输入需要转换的数字x和进制数P:"; int x;cin >> x;int P; cin >> P; cout << toBase(x,P);return 0;
}
几个案例解释:
案例一:
-
用户输入: 用户输入两个值:
x和P。在这个例子中,x为66,P为4。 -
调用
toBase函数: 函数toBase接受两个参数:要转换的十进制数num(这里是66)和目标进制数base(这里是4)。 -
循环计算:
- 第一次循环:
- 计算
66 % 4 = 2,余数为2。对应的字符是'2'。 66 / 4 = 16,商为16。更新num为16。
- 计算
- 第二次循环:
- 计算
16 % 4 = 0,余数为0。对应的字符是'0'. 16 / 4 = 4,商为4。更新num为4。
- 计算
- 第三次循环:
- 计算
4 % 4 = 0,余数为0。对应的字符是'0'。 4 / 4 = 1,商为1。更新num为1。
- 计算
- 第四次循环:
- 计算
1 % 4 = 1,余数为1。对应的字符是'1'。 1 / 4 = 0,商为0,循环结束。
- 计算
由于
result是逆序构建的,结果字符串为'1002'。 - 第一次循环:
-
输出结果: 将
toBase的结果输出至标准输出流。 最终结果为'1002',即66转为4进制的表示是'1002'。
案例二:
-
用户输入: 用户输入两个值:
x和P。在这个例子中,x为666,P为24。 -
调用
toBase函数: 函数toBase接受两个参数:要转换的十进制数num(这里是666)和目标进制数base(这里是24)。 -
循环计算:
- 第一次循环:
- 计算
666 % 24 = 18,余数为18。对应的字符是'I'。 666 / 24 = 27,商为27。更新num为27。
- 计算
- 第二次循环:
- 计算
27 % 24 = 3,余数为3。对应的字符是'3'。 27 / 24 = 1,商为1。更新num为1。
- 计算
- 第三次循环:
- 计算
1 % 24 = 1,余数为1。对应的字符是'1'。 1 / 24 = 0,商为0,循环结束。
- 计算
由于
result是逆序构建的,结果字符串为'1318'。 - 第一次循环:
-
输出结果: 将
toBase的结果输出至标准输出流。 最终结果为'1318',即666转为24进制的表示是'1318'。
案例三:
-
用户输入: 用户输入两个值:
x和P。在这个例子中,x为999,P为36。 -
调用
toBase函数: 函数toBase接受两个参数:要转换的十进制数num(这里是999)和目标进制数base(这里是36)。 -
循环计算:
- 第一次循环:
- 计算
999 % 36 = 27,余数为27。对应的字符是'R'。 999 / 36 = 27,商为27。更新num为27。
- 计算
- 第二次循环:
- 计算
27 % 36 = 27,余数为27。对应的字符是'R'。 27 / 36 = 0,商为0,循环结束。
- 计算
由于
result是逆序构建的,结果字符串为'RR'。 - 第一次循环:
-
输出结果: 将
toBase的结果输出至标准输出流。 最终结果为'RR',即999转为36进制的表示是'RR'。
任意进制之间的转换:
#include <iostream>
#include <vector>
#include <string> using namespace std; // 将十进制数转换为P进制形式的字符串
string toBase(int num, int base) {string result = ""; // 初始化结果字符串为空while (num > 0) { // 当num大于0时执行循环int digit = num % base; // 计算num除以base的余数char digitChar; // 定义字符变量用于表示余数对应的字符if (digit >= 10) { // 如果余数大于等于10digitChar = 'A' + digit - 10; // 将余数转换为对应的字母(大写)} else { // 否则余数为个位数digitChar = '0' + digit; // 将余数转换为对应的字符}result = digitChar + result; // 将当前字符添加到结果字符串的开头num /= base; // 更新num为num除以base的商}return result; // 返回转换后的P进制字符串
}// 将P进制数(以字符串形式给出)转换为十进制数
int fromBase(const string& num, int base) { int result = 0; int power = 1; for (int i = num.size() - 1; i >= 0; --i) { char digitChar = num[i]; int digit = 0; if (digitChar >= '0' && digitChar <= '9') { digit = digitChar - '0'; } else if (digitChar >= 'A' && digitChar <= 'Z') { digit = digitChar - 'A' + 10; } else if (digitChar >= 'a' && digitChar <= 'z') { digit = digitChar - 'a' + 10; } else { cerr << "Invalid character in input string!" << endl; return -1; // 返回-1表示输入字符串中有无效字符 } result += digit * power; power *= base; } return result;
} int main() { //仅仅在调用第二个函数 cout << "请输入需要转换的数字x(以字符串形式给出)和进制数P:"; string x; cin >> x; int P; cin >> P; // 检查进制数是否合法(应在2到36之间) if (P < 2 || P > 36) { cerr << "Invalid base! Base should be between 2 and 36." << endl; return 1; } int decimalValue = fromBase(x, P); if (decimalValue != -1) { cout << "转换后的十进制数为: " << decimalValue << endl; } return 0;
}
相关文章:
十进制转任意进制(以及任意进制来回转换<了解>)
十进制转任意进制: #include <iostream> #include <vector> #include <string> using namespace std; // 将十进制数转换为P进制形式的字符串 string toBase(int num, int base) {string result ""; // 初始化结果字符串为空wh…...
postcss-px-to-viewport 从入坑到放弃 (nuxt3搭建响应式官网解决方案 )
前沿 什么是 postcss-px-to-viewport 将px单位转换为视口单位的 (vw, vh, vmin, vmax) 的 PostCSS 插件。 为什么使用 postcss-px-to-viewport 在pc端盛行的时代 ,如果你不想去适配更多的pc端代码,可以采用它。 由于nuxt3本身已带postcss,所…...
C语言从入门到入门
一、引言 C语言是一种通用的、过程式的计算机编程语言,支持结构化编程、词汇变量作用域和递归等功能,其设计提供了低级别的存取权限,并且要求程序员管理所有的内存细节。C语言具有高效、灵活和可移植性等特点,因此被广泛应用于系统编程、嵌入式系统开发、游戏开发等领域。 …...
Java基础教程 - 4 流程控制
更好的阅读体验:点这里 ( www.doubibiji.com ) 更好的阅读体验:点这里 ( www.doubibiji.com ) 更好的阅读体验:点这里 ( www.doubibiji.com ) 4 流程控制 4.1 分支结构…...
大厂Java面试题:MyBatis中有几种加载映射器(Mapper.xml)的方式?
大家好,我是王有志。 今天给大家带来的是一道来自京东的 MyBatis 面试题:MyBatis 中有几种加载映射器(Mapper.xml)的方式? 常见加载 MyBatis 映射器的方式有 5 种,可以根据不同的使用方式来进行具体区分&…...
Flutter笔记:Widgets Easier组件库(10)快速处理承若型对话
Flutter笔记 使用Widgets Easier组件库快速处理承若型对话 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://…...
10_Linux中的计划任务
10_Linux中的计划任务 常见计划任务 Linux系统中默认在执行的计划任务 日志文件的轮询:logrotate日志文件分析logwatch任务建立locate数据库建立manpage查询数据库RPM软件日志文件删除缓存与网络有关的分析 仅执行一次的计划任务 atd和at [rootnode4 ~]# systemctl start…...
Google Play开发者账号为什么会被封?如何解决关联账号问题?
Google Play是Google提供的一个应用商店,用户可以在其中下载并安装Android设备上的应用程序、电影、音乐、电子图书等。Google Play是Android平台上较大的应用市场,包含了数百万个应用程序和游戏。但是谷歌对于上架应用的审核越趋严格,开发者…...
(第12天)【leetcode题解】151、反转字符串中的单词
目录 151、反转字符串中的单词题目描述思路代码本题反思 151、反转字符串中的单词 题目描述 给你一个字符串 s ,请你反转字符串中单词的顺序。 单词是由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的单词分隔开。 返回单词顺序颠倒且单词之间用单个…...
如何处理多模态数据噪声不均衡动态?天大等最新《低质量数据的多模态融合》综述
多模态融合致力于整合来自多种模态的信息,目的是实现更准确的预测。在包括自动驾驶和医疗诊断等广泛的场景中,多模态融合已取得显著进展。然而,在低质量数据环境下,多模态融合的可靠性大部分仍未被探索。本文综述了开放多模态融合…...
Autosar NvM配置-手动配置Nvblock及使用-基于ETAS软件
文章目录 前言NvDataInterfaceNvBlockNvM配置SWC配置RTE Mapping使用生成的接口操作NVM总结前言 NVM作为存储协议栈中最顶层的模块,是必须要掌握的。目前项目基本使用MCU带的Dflash模块,使用Fee模拟eeprom。在项目前期阶段,应该充分讨论需要存储的内容,包括应用数据,诊断…...
【c++算法篇】双指针(下)
🔥个人主页:Quitecoder 🔥专栏:算法笔记仓 朋友们大家好啊,本篇文章我们来到算法的双指针的第二部分 目录 1.有效三角形的个数2.查找总价格为目标值的两个商品3.三数之和4.四数之和5.双指针常见场景总结 1.有效三角形…...
微图乐 多种装B截图一键制作工具(仅供娱乐交流)
软件介绍 采用exe进程交互通信。全新UI界面,让界面更加清爽简约。支持zfb、VX、TX、Yin行、Dai款、游戏等图片生成,一键超清原图复制到剪辑板,分享给好友。适用于提高商家信誉度,产品销售额度。装逼娱乐,用微图乐。图…...
基于Springboot的点餐平台
基于SpringbootVue的点餐平台的设计与实现 开发语言:Java数据库:MySQL技术:SpringbootMybatis工具:IDEA、Maven、Navicat 系统展示 用户登录 首页展示 菜品信息 菜品资讯 购物车 后台登录 用户管理 菜品分类管理 菜品信息管理 …...
C# 获取一个字符串中非数字部分?
方法一:使用正则表达式 使用正则表达式可以便捷地匹配并提取出字符串中所有非数字字符。与之前保留数字时的做法相反,这次我们将匹配数字并替换为空字符串,从而留下非数字部分。 using System; using System.Text.RegularExpressions;publi…...
今日总结2024/5/7
今日复习LIS二分优化的使用 P2782 友好城市 确定一边城市排序完后,另外一边满足坐标上升的最大数目即是桥的最大个数 为上升子序列模型 #include <iostream> #include <algorithm> #include <utility> #define x first #define y second cons…...
爬虫学习(3)豆瓣电影
代码 import requests import jsonif __name__ "__main__":url https://movie.douban.com/j/chart/top_list#post请求参数处理(同get请求一致)headers {"User-Agent": Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/53…...
GNU Radio创建FFT、IFFT C++ OOT块
文章目录 前言一、GNU Radio官方FFT弊端二、创建自定义的 C OOT 块1、创建 OOT 模块2、创建 OOT 块3、修改 C 和 CMAKE 文件4、编译及安装 OOT 块 三、测试1、grc 图2、运行结果①、时域波形对比②、频谱图对比 四、资源自取 前言 GNU Radio 自带的 FFT 模块使用起来不是很方便…...
125.两两交换链表中的节点(力扣)
题目描述 代码解决及思路 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), …...
APP精准推送广告是怎么做到的?
你有没有遇到这种情况,刚和家人聊起五一去哪玩,各种软件就刷到各地旅游景点。刚和朋友说到健身计划,转眼间网购平台就给你推荐各种健身用品,这些软件是如何知道我们的需求,难道我们的手机被监听了?从技术上…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
使用LangGraph和LangSmith构建多智能体人工智能系统
现在,通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战,比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要
根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分: 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
《Docker》架构
文章目录 架构模式单机架构应用数据分离架构应用服务器集群架构读写分离/主从分离架构冷热分离架构垂直分库架构微服务架构容器编排架构什么是容器,docker,镜像,k8s 架构模式 单机架构 单机架构其实就是应用服务器和单机服务器都部署在同一…...
Vue3 PC端 UI组件库我更推荐Naive UI
一、Vue3生态现状与UI库选择的重要性 随着Vue3的稳定发布和Composition API的广泛采用,前端开发者面临着UI组件库的重新选择。一个好的UI库不仅能提升开发效率,还能确保项目的长期可维护性。本文将对比三大主流Vue3 UI库(Naive UI、Element …...
STM32标准库-ADC数模转换器
文章目录 一、ADC1.1简介1. 2逐次逼近型ADC1.3ADC框图1.4ADC基本结构1.4.1 信号 “上车点”:输入模块(GPIO、温度、V_REFINT)1.4.2 信号 “调度站”:多路开关1.4.3 信号 “加工厂”:ADC 转换器(规则组 注入…...
