首页 > 其他分享 >十进制转八进制的一种思路

十进制转八进制的一种思路

时间:2023-02-20 23:26:35浏览次数:27  
标签:115 64 次方 思路 八进制 十进制 式子

前言

我们先看本次分析的源代码

image-20230220224954005

不得不承认,在没有人指导的情况下,我感觉但从代码出发思路还是比较难以琢磨出来的。想要搞出来还是要从单一案例出发,研究其中的数学逻辑,多演草,尽可能去寻找数与数之间的关系。

正文

先从代码分析

该代码主要分为两个部分

第一部分用来找出一个小于输入值的最大8次方数

image-20230220225320656

第二部分用通过依次输出单一数字(某一位上的数字)来组合出我们的答案

与正常计算方式对比

我们正常计算十进制转八进制问题时,我们的一般步骤是:将10进制数一直除8,取每次余数,最后将这些余数逆序组合得出答案。

其中的逆序组合是最关键的问题,我们可以通过存入数组中来实现,但是这个代码并不这样做,所以我们要重点分析他是怎么解决的。

分析八进制

我们以115来举例,正常计算结果如下

image-20230220225810875

那么我们进行逆向分析,将这个八进制转换为十进制,看看会是一个什么过程

image-20230220230838272

这里我们就可以发现端倪了:这个式子实际上就是3+48+64=115,我们从这个式子中也能发现,115实际就是64、8、0的组合。首先去找64得到1,然后去找8,然后去找3。我们对这个式子逆推是显然成立的,如果逆推的时候数值存在偏差,那么正向式子就显然不满足除到底的要求。

重审代码

所以,面对十进制转八进制问题,我们需要先找出那个小于输入值的最大8次方数(再大的那些数据显然放在式子里是乘0的),然后向小的方向求出其他8的次方数。对于115的情况就是先得出64,然后找到8。

先用64去除,拿他的结果。剩下的余数要靠更小的8的次方数去组成。这样一直进行到8结束,剩下的就交给1来凑了。

标签:115,64,次方,思路,八进制,十进制,式子
From: https://www.cnblogs.com/zaughtercode/p/17139372.html

相关文章