【十进制整数转换为其他进制数——短除形式的贪心算法】

之前写过一篇用贪心算法计算十进制转换二进制的方法,详见:用贪心算法计算十进制数转二进制数(整数部分)_短除法求二进制-CSDN博客

经过一段时间的研究,本人又发现两个规律:

1、不仅仅十进制整数转二进制可以用贪心算法,十进制转其他进制一样适用;

2、可以用短除的形式进行贪心算法转换,使转换更加直观。

目录

一、按权展开求和法

二、贪心法的思路

三、贪心算法的短除形式

1、短除法

2、图解说明

四、实例


一、按权展开求和法

假设要转换的十进制数为D,转换的目标进制为N进制,假设转换完的结果为

D=( k_{n-1}k_{n-2}...k_{0})_{N}                                                      (1)

在转换完的N进制数中,从右向左,数字的位置编号(也叫数位)i从0开始,一直到n-1(有些文献把最右边最低位的编号定为1,本文为了方便后续计算,定为0)。k_{i}为第i位的数字,对应位的权值(权值就是在这个数位上,每个1代表的数值)为N^{i}

那么根据按权展开求和法有:

D=k_{n-1}*N^{n-1}+...+k_{2}*N^{2}+k_{1}*N^{1}+k_{0}*N^{0}                 (2)

二、贪心法的思路

第一步:找出在十进制数D中包含的其他进制的最大权值N^{i},并算出对应的数位序号i

第二步:用D除以N^{i},求出商k_{i}(也就是第i位对应的数字),以及余数r_{i}

第三步:如果r_{i}不等于0,令D=r_{i},回到第一步继续计算;

第四步:当r_{i}=0时,转换结束;

第五步:计算出转换结果,把所求出的k_{i}都填到相应的第i位,没有数字的位上补0

三、贪心算法的短除形式

1、短除法

用短除法的形式进行贪心算法转换的过程如下图所示:

图1 贪心算法的短除形式

2、图解说明

先找出当前D包含的最大权值N^{i},D为被除数,放在短除号上侧,N^{i}为除数,放在短除号左侧,求出的商k_{i}放在短除号右侧,余数r_{i}放在短除号下侧。如果r_{i}不等于0,把r_{i}看成D,继续进行计算,直到r_{i}=0,短除结束。把右侧的一系列商填入对应的数位,没有商的数位补0,转换完成。

四、实例

下边用3个例子,分别演示一下如何用短除形式的贪心算法把十进制整数转换为二进制、八进制、十六进制数。

例1:把十进制数(35)D转换为二进制数。

计算过程如图2所示:

图2  十进制转二进制

计算说明如下:

第一步:(35)D中包含的2进制的最大权值为2^{5}=32,对应数位为第5位;

第二步:35/32=1余3,第5位对应的数字为1;

第三步:D=3,继续计算,3中包含的最大权值为2^{1}=2,对应数位为第1位;

第四步:3/2=1余1,第1位对应的数字为1;

第五步:D=1,继续计算,1中包含的最大权值为2^{0}=1,对应数位为第0位;

第六步:1/1=1余0,第0位对应的数字为1,余数为0,计算结束。

第七步:序号为第5、第1和第0的数位,商都为1,其他位没有商,对应数字为0,所以转换的结果为(100011)B。

例2:把十进制数(168)D转换为八进制数。

求解过程如图3所示:

图3  十进制转八进制

例3:把十进制数(951)D转换为十六进制数。

求解过程如图4所示:

图4  十进制转十六进制

(全文结束)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/938278.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

舵机SG90详解

舵机,也叫伺服电机,在嵌入式开发中,舵机作为一种常见的运动控制组件,具有广泛的应用。其中,SG90 舵机以其高效、稳定的性能特点,成为了许多工程师和爱好者的首选,无论是航模、云台、机器人、智能…

如何为IntelliJ IDEA配置JVM参数

在使用IntelliJ IDEA进行Java开发时,合理配置JVM参数对于优化项目性能和资源管理至关重要。IntelliJ IDEA提供了两种方便的方式来设置JVM参数,以确保你的应用程序能够在最佳状态下运行。本文将详细介绍这两种方法:通过工具栏编辑配置和通过服…

跌倒数据集,5345张图片, 使用yolo,coco json,voc xml格式进行标注,平均识别率99.5%以上

跌倒数据集,5345张图片, 使用yolo,coco json,voc xml格式进行标注,平均识别率99.5%以上 ,可用于某些场景下识别人是否跌倒或摔倒并进行告警。 数据集分割 训练组99% 5313图片 有效集0&am…

nods.js之nrm安装及使用

nods.js之nrm安装及使用 一、简介二、安装 nrm与使用三、报错解决 一、简介 nrm 是 Node.js 的一个工具,用于管理和切换 npm 源(Registry)。它使得在不同的 npm 镜像源之间切换变得非常容易,尤其对于那些经常因为网络问题或速度原…

selenium自动化测试基础知识

目录 一、概念知识 (一)三大核心组件 (二)Selenium 自动化测试的工作原理 (三)Selenium 支持的操作 (四)Selenium 自动化测试的优点 (五)Selenium 自动化测试的缺点 (六)Selenium 自动化测试的应用场景 总结 二、实操例子 使用前提--安装步骤 注意事项 (一)浏览器的…

Cisco Packet Tarcer配置计网实验笔记

文章目录 概要整体架构流程网络设备互连基础拓扑图拓扑说明配置步骤 RIP/OSPF混合路由拓扑图拓扑说明配置步骤 BGP协议拓扑图拓扑说明配置步骤 ACL访问控制拓扑图拓扑说明配置步骤 HSRP冗余网关拓扑图拓扑说明配置步骤 小结 概要 一些环境配置笔记 整体架构流程 网络设备互连…

RNN LSTM Seq2Seq Attention

非端到端: data -》 cleaning -》 feature Engining (70%-80%工作 设计特征)-》 分类器 -》预测 端到端 End-to-End: data -》 cleaning -》Deep learning(表示学习,从数据中学习特征) -》…

【AI日记】24.12.17 kaggle 比赛 2-6 | 把做饭看成一种游戏 | 咖喱牛肉

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】 工作 参加:kaggle 比赛 Regression with an Insurance Dataset时间:9 小时睡得好很重要 读书 书名:富兰克林自传时间:0.5 小时阅读原因:100 美元纸…

电脑为什么会提示“msvcr120.dll缺失”?“找不到msvcr120.dll文件”要怎么解决?

电脑故障排查指南:揭秘“msvcr120.dll缺失”的真相与解决方案 在软件开发与日常维护的广阔天地里,遇到系统报错或文件缺失的情况可谓家常便饭。今天,我将带领大家深入探讨一个常见的系统提示——“msvcr120.dll缺失”,并揭秘其背…

Kotlin复习

一、Kotlin类型 1.整数 2.浮点 显示转换: 所有数字类型都支持转换为其他类型,但是转换前会检测长度。 toByte(): Byte toShort(): Short toInt(): Int toLong(): Long toFloat(): Float toDouble(): Double 不同进制的数字表示方法(为了提高…

【BUG】记一次context canceled的报错

文章目录 案例分析gorm源码解读gin context 生命周期context什么时候cancel的什么时候context会被动cancel掉呢? 野生协程如何处理 案例分析 报错信息 {"L":"ERROR","T":"2024-12-17T11:11:33.0050800","file"…

召回系统介绍

一、以Lucene为例介绍召回系统 1、倒排检索 Lucene的倒排索引由 Term Index -> TermDictionary -> Posting List 三层组成,倒排检索实际上就是通过分词Term查询到倒排拉链,然后对所有拉链进行合并。 Term-> Posting List,可以直接…

Ubuntu22.04系统下MVS运行海康威视工业相机

之前的开发环境是Ubuntu16.04,最近因项目需求换到了Ubuntu22.04系统,安装了ROS2-humble,重新记录下开发过程。 Ubuntu16.04系统可参考: VMware虚拟机中Ubuntu16.04系统下通过MVS运行海康威视工业相机 Linux环境中对海康威视工业相…

慧知开源充电桩平台 - OCPP充电桩协议越南充电平台:多语种支持、多元支付、本地化策略

越南充电新体验:多语种支持,便捷支付! 助力充电桩运营本土化落地,为越南市场提供定制化解决方案 随着全球电动汽车市场的迅猛发展,越南作为东南亚新兴的汽车市场,对电动汽车充电基础设施的需求也在急剧增…

基于Clinical BERT的医疗知识图谱自动化构建方法,双层对比框架

基于Clinical BERT的医疗知识图谱自动化构建方法,双层对比框架 论文大纲理解1. 确认目标2. 目标-手段分析3. 实现步骤4. 金手指分析 全流程核心模式核心模式提取压缩后的系统描述核心创新点 数据分析第一步:数据收集第二步:规律挖掘第三步&am…

华为ensp--BGP路径选择-Preferred Value

学习新思想,争做新青年。今天学习的是BGP路径选择-Preferred Value 实验目的 理解BGP路由信息首选值(Preferred Value)的作用 掌握修改Preferred Value属性的方法 掌握通过修改Preferred Value属性来实现流量分担的方法 实验拓扑 实验要求…

如何在OpenCV中运行自定义OCR模型

我们首先介绍如何获取自定义OCR模型,然后介绍如何转换自己的OCR模型以便能够被opencv_dnn模块正确运行,最后我们将提供一些预先训练的模型。 训练你自己的 OCR 模型 此存储库是训练您自己的 OCR 模型的良好起点。在存储库中,MJSynthSynthTe…

“从零到一:揭秘操作系统的奇妙世界”【操作系统的发展】

1.手工操作阶段 此时没有OS,用户采用人工操作方式进行。 方式:程序员在纸带机上打孔---计算机读取---结果输出到纸袋机上---程序员取走结果 缺点:耗时长,难度大、用户独占全机、人机速度矛盾导致资源利用率低 2.单批道处理系统 引…

二叉树理论基础篇

这里写目录标题 二叉树的种类**满二叉树(Full Binary Tree)****完全二叉树(Complete Binary Tree)****二叉搜索树(Binary Search Tree,BST)**平衡二叉搜索树 二叉树的存储方式二叉树的遍历方式二…

【376.2协议】国网_用电信息采集系统通信协议

【376.2协议】用电信息采集系统通信协议 文章目录 【376.2协议】用电信息采集系统通信协议1、帧格式2、各传输帧2.1 控制域 C (一个字节|8个位)2.2 用户数据区格式2.2.1 信息域2.2.2 地址域2.2.3 应用数据域 3、式例 1、帧格式 帧格式定义规则起始字符固定报文头( …