十进制转任意进制(以及任意进制来回转换<了解>)
十进制转任意进制:
#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精准推送广告是怎么做到的?
你有没有遇到这种情况,刚和家人聊起五一去哪玩,各种软件就刷到各地旅游景点。刚和朋友说到健身计划,转眼间网购平台就给你推荐各种健身用品,这些软件是如何知道我们的需求,难道我们的手机被监听了?从技术上…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
OPENCV形态学基础之二腐蚀
一.腐蚀的原理 (图1) 数学表达式:dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一,腐蚀跟膨胀属于反向操作,膨胀是把图像图像变大,而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
