【十进制整数转换为其他进制数——短除形式的贪心算法】
之前写过一篇用贪心算法计算十进制转换二进制的方法,详见:用贪心算法计算十进制数转二进制数(整数部分)_短除法求二进制-CSDN博客
经过一段时间的研究,本人又发现两个规律:
1、不仅仅十进制整数转二进制可以用贪心算法,十进制转其他进制一样适用;
2、可以用短除的形式进行贪心算法转换,使转换更加直观。
目录
一、按权展开求和法
二、贪心法的思路
三、贪心算法的短除形式
1、短除法
2、图解说明
四、实例
一、按权展开求和法
假设要转换的十进制数为D,转换的目标进制为N进制,假设转换完的结果为
(1)
在转换完的N进制数中,从右向左,数字的位置编号(也叫数位)从0开始,一直到
(有些文献把最右边最低位的编号定为1,本文为了方便后续计算,定为0)。
为第
位的数字,对应位的权值(权值就是在这个数位上,每个1代表的数值)为
。
那么根据按权展开求和法有:
(2)
二、贪心法的思路
第一步:找出在十进制数D中包含的其他进制的最大权值,并算出对应的数位序号
;
第二步:用除以
,求出商
(也就是第
位对应的数字),以及余数
;
第三步:如果不等于0,令D=
,回到第一步继续计算;
第四步:当=0时,转换结束;
第五步:计算出转换结果,把所求出的都填到相应的第
位,没有数字的位上补0。
三、贪心算法的短除形式
1、短除法
用短除法的形式进行贪心算法转换的过程如下图所示:
2、图解说明
先找出当前D包含的最大权值,D为被除数,放在短除号上侧,
为除数,放在短除号左侧,求出的商
放在短除号右侧,余数
放在短除号下侧。如果
不等于0,把
看成D,继续进行计算,直到
=0,短除结束。把右侧的一系列商填入对应的数位,没有商的数位补0,转换完成。
四、实例
下边用3个例子,分别演示一下如何用短除形式的贪心算法把十进制整数转换为二进制、八进制、十六进制数。
例1:把十进制数(35)D转换为二进制数。
计算过程如图2所示:
计算说明如下:
第一步:(35)D中包含的2进制的最大权值为=32,对应数位为第5位;
第二步:35/32=1余3,第5位对应的数字为1;
第三步:D=3,继续计算,3中包含的最大权值为=2,对应数位为第1位;
第四步:3/2=1余1,第1位对应的数字为1;
第五步:D=1,继续计算,1中包含的最大权值为=1,对应数位为第0位;
第六步:1/1=1余0,第0位对应的数字为1,余数为0,计算结束。
第七步:序号为第5、第1和第0的数位,商都为1,其他位没有商,对应数字为0,所以转换的结果为(100011)B。
例2:把十进制数(168)D转换为八进制数。
求解过程如图3所示:
例3:把十进制数(951)D转换为十六进制数。
求解过程如图4所示:
(全文结束)
相关文章:
【十进制整数转换为其他进制数——短除形式的贪心算法】
之前写过一篇用贪心算法计算十进制转换二进制的方法,详见:用贪心算法计算十进制数转二进制数(整数部分)_短除法求二进制-CSDN博客 经过一段时间的研究,本人又发现两个规律: 1、不仅仅十进制整数转二进制可…...
【JavaEE】网络(2)
一、网络编程套接字 1.1 基础概念 【网络编程】指网络上的主机,通过不同的进程,以编程的方式实现网络通信;当然,我们只要满足进程不同就行,所以即便是同一个主机,只要是不同进程,基于网络来传…...
AI for Science 的完美实践——科研文献的智慧化提取获得“综述性文摘”的软件开发
实践是检验真理的唯一标准!show your codes! 1 综述性文摘的需求 再简单不过了。 甲方(综述性文摘)需求:针对项目特征或描述,从几百篇相关的科研论文(PDF)中智能提取相关内容,包括…...
前端使用xlsx.js实现 Excel 文件的导入与导出功能
前端使用xlsx.js实现 Excel 文件的导入与导出功能 在现代的 Web 开发中,处理文件上传和导出功能已经变得越来越常见,尤其是 Excel 文件的导入与导出。 我们将使用 Vue.js 和 XLSX.js 库来处理 Excel 文件的读取和生成。XLSX.js 是一个强大的 JavaScrip…...
React简单了解
原理简化了解 import React from "react" import { createRoot } form "react-dom/client"const element React.createElement(p,{id: hello},Hello World! )const container document.querySelector(#root) const root createRoot(container) root.r…...
backbone 和Run-Length Encoding (RLE)含义
在深度学习中,特别是在图像分割任务中,backbone(主干网络)是指用于特征提取的预训练神经网络模型。Backbone 的主要作用是从输入图像中提取有用的特征,这些特征随后会被用于更高层次的任务,如分类、检测或分…...
在Centos7上安装MySQL数据库 How to install MySQL on Centos 7
执行以下命令,下载并安装MySQL。 wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm && yum -y install mysql57-community-release-el7-10.noarch.rpm && yum install -y mysql-community-server --nogpgcheck执行以下…...
Linux docker-20.10.9安装
Linux Docker20.10.9安装 解压文件 tar -xvf docker-20.10.9.tgz 给docker执行文件赋予可执行权限 chmod 755 -R docker/复制docker到/usr/bin/目录下,使docker命令可以执行 cp docker/* /usr/bin/将Docker注册为service,创建docker.service文件 vim /etc/syst…...
操作系统(13)虚拟存储器
前言 操作系统中的虚拟存储器是一项关键技术,它为用户提供了一个远大于实际物理内存容量的逻辑内存空间。 一、定义与原理 虚拟存储器是具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的存储器系统。其逻辑容量由内存容量与外存容量之和决定&…...
《面向对象综合训练01~05》
《面向对象综合训练01~05》 训练01:文字版格斗游戏 第一步:创建游戏角色的javabean类 public class Role {private String name;private int blood;private char gender;private String face;//长相是随机的//创建男女长相的随机数组String[] boyfaces…...
电脑为什么会提示“msvcr120.dll缺失”?“找不到msvcr120.dll文件”要怎么解决?
电脑故障排查指南:揭秘“msvcr120.dll缺失”的真相与解决方案 在软件开发与日常维护的广阔天地里,遇到系统报错或文件缺失的情况可谓家常便饭。今天,我将带领大家深入探讨一个常见的系统提示——“msvcr120.dll缺失”,并揭秘其背…...
huggingface NLP-微调一个预训练模型
微调一个预训练模型 1 预处理数据 1.1 处理数据 1.1.1 fine-tune 使用tokenizer后的token 进行训练 batch tokenizer(sequences, paddingTrue, truncationTrue, return_tensors"pt")# This is new batch["labels"] torch.tensor([1, 1])optimizer A…...
【BUG记录】Apifox 参数传入 + 号变成空格的 BUG
文章目录 1. 问题描述2. 原因2.1 编码2.2 解码 3. 解决方法 1. 问题描述 之前写了一个接口,用 Apifox 请求,参数传入一个 86 的电话,结果到服务器 就变成空格了。 Java 接收请求的接口: 2. 原因 2.1 编码 进行 URL 请求的…...
Spring AI API 介绍
目录: Spring AI 框架介绍 Spring AI API 核心API简介 Spring AI 提供了很多便利的功能,主要如下: AI Model API “Model API” 提供了聊天、文本转图像、音频转录、文本转语音、嵌入等功能,且不局限于某个固定的大模型提供商…...
【MySQL】Linux使用C语言连接安装
📢博客主页:https://blog.csdn.net/2301_779549673 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📢本文由 JohnKi 原创,首发于 CSDN🙉 📢未来很长&#…...
2024年第十五届蓝桥杯青少组C++国赛—割点
割点 题目描述 一张棋盘由n行 m 列的网格矩阵组成,每个网格中最多放一颗棋子。当前棋盘上已有若干棋子。所有水平方向或竖直方向上相邻的棋子属于同一连通块。 现给定棋盘上所有棋子的位置,如果要使棋盘上出现两个及以上的棋子连通块,请问…...
【软件开发】做出技术决策
文章目录 专注于核心业务除非绝对必要,不要重写代码保持技术栈简单尽量减少依赖避免范围蔓延按照业务实际情况确定优先级在做出高风险决策前构建原型跨职能团队协作信任你的团队在过去的二十年里,我曾在多家初创企业担任软件开发人员、技术负责人以及首席技术官(包括创办自己…...
Airborne使用教程
1.安装环境 前提条件:系统已安装Ruby 打开终端输入如下命令 gem install airborne 或者在Gemfile添加 gem airborne 然后运行bundle install 2.编写脚本 在项目中新建api_tests_spec.rb文件 以GET接口"https://www.thunderclient.com/welcome"为…...
WPF实现曲线数据展示【案例:震动数据分析】
wpf实现曲线数据展示,函数曲线展示,实例:震动数据分析为例。 如上图所示,如果你想实现上图中的效果,请详细参考我的内容,创作不易,给个赞吧。 一共有两种方式来实现,一种是使用第三…...
EasyExcel 动态设置表格的背景颜色和排列
项目中使用EasyExcel把数据以excel格式导出,其中设置某一行、某一列单元格的背景颜色、排列方式十分常用,记录下来方便以后查阅。 1. 导入maven依赖: <dependency><groupId>com.alibaba</groupId><artifactId>easy…...
网络六边形受到攻击
大家读完觉得有帮助记得关注和点赞!!! 抽象 现代智能交通系统 (ITS) 的一个关键要求是能够以安全、可靠和匿名的方式从互联车辆和移动设备收集地理参考数据。Nexagon 协议建立在 IETF 定位器/ID 分离协议 (…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
抖音增长新引擎:品融电商,一站式全案代运营领跑者
抖音增长新引擎:品融电商,一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中,品牌如何破浪前行?自建团队成本高、效果难控;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
AI,如何重构理解、匹配与决策?
AI 时代,我们如何理解消费? 作者|王彬 封面|Unplash 人们通过信息理解世界。 曾几何时,PC 与移动互联网重塑了人们的购物路径:信息变得唾手可得,商品决策变得高度依赖内容。 但 AI 时代的来…...
GitFlow 工作模式(详解)
今天再学项目的过程中遇到使用gitflow模式管理代码,因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存,无论是github还是gittee,都是一种基于git去保存代码的形式,这样保存代码…...
Ubuntu系统复制(U盘-电脑硬盘)
所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…...
