建设童装网站的意义,成都建设网站那个好,广州手机网站设计,淘宝网站做超链接之前写过一篇用贪心算法计算十进制转换二进制的方法#xff0c;详见#xff1a;用贪心算法计算十进制数转二进制数#xff08;整数部分#xff09;_短除法求二进制-CSDN博客
经过一段时间的研究#xff0c;本人又发现两个规律#xff1a;
1、不仅仅十进制整数转二进制可…之前写过一篇用贪心算法计算十进制转换二进制的方法详见用贪心算法计算十进制数转二进制数整数部分_短除法求二进制-CSDN博客
经过一段时间的研究本人又发现两个规律
1、不仅仅十进制整数转二进制可以用贪心算法十进制转其他进制一样适用
2、可以用短除的形式进行贪心算法转换使转换更加直观。
目录
一、按权展开求和法
二、贪心法的思路
三、贪心算法的短除形式
1、短除法
2、图解说明
四、实例 一、按权展开求和法
假设要转换的十进制数为D转换的目标进制为N进制假设转换完的结果为 (1)
在转换完的N进制数中从右向左数字的位置编号(也叫数位)从0开始一直到有些文献把最右边最低位的编号定为1本文为了方便后续计算定为0。为第位的数字对应位的权值权值就是在这个数位上每个1代表的数值为。
那么根据按权展开求和法有 2
二、贪心法的思路
第一步找出在十进制数D中包含的其他进制的最大权值并算出对应的数位序号
第二步用除以求出商也就是第位对应的数字以及余数
第三步如果不等于0令D回到第一步继续计算
第四步当0时转换结束
第五步计算出转换结果把所求出的都填到相应的第位没有数字的位上补0。
三、贪心算法的短除形式
1、短除法
用短除法的形式进行贪心算法转换的过程如下图所示 图1 贪心算法的短除形式 2、图解说明
先找出当前D包含的最大权值D为被除数放在短除号上侧为除数放在短除号左侧求出的商放在短除号右侧余数放在短除号下侧。如果不等于0把看成D继续进行计算直到0短除结束。把右侧的一系列商填入对应的数位没有商的数位补0转换完成。
四、实例 下边用3个例子分别演示一下如何用短除形式的贪心算法把十进制整数转换为二进制、八进制、十六进制数。
例1把十进制数(35)D转换为二进制数。
计算过程如图2所示 图2 十进制转二进制 计算说明如下
第一步(35)D中包含的2进制的最大权值为32对应数位为第5位
第二步35/321余3第5位对应的数字为1
第三步D3继续计算3中包含的最大权值为2对应数位为第1位
第四步3/21余1第1位对应的数字为1
第五步D1继续计算1中包含的最大权值为1对应数位为第0位
第六步1/11余0第0位对应的数字为1余数为0计算结束。
第七步序号为第5、第1和第0的数位商都为1其他位没有商对应数字为0所以转换的结果为(100011)B。
例2把十进制数(168)D转换为八进制数。
求解过程如图3所示 图3 十进制转八进制 例3把十进制数(951)D转换为十六进制数。
求解过程如图4所示 图4 十进制转十六进制 (全文结束)