m进制转换为n进制-任意进制转换算法

这种题也是一道经典的面试题,主要考察进制转换细想,Coding质量等。

当我们把十进制转成二进制的时候,我们通过辗转相除,取余,逆置余数序列的过程得到新的进制的数。因此我们可以借助这种思想把M进制转成N进制的数。

如下是C的详细的实现方法

 

观察上面的代码,存在着众多的不足。例如,要对输入参数做检查,数值的大小收到int值最大值的限制等。不过好在一点,该算法的时间复杂度是O(n)的。

但是我们霹雳无敌的赵大叔又提供了一种用Java实现的通用的进制转换方法,即使Windows的计算器也转不了的大数,这个算法也可以转。算和上面的算法相比,他的基本思想不变,还是辗转除,但是用了字符串做大数相除,很不错的创新点,赞一个。代码如下:

赵大叔的算法好了不少,除了参数检查,大小写之外都很好。值得我们借鉴。
下载源码:

M2N.Java (2.90 kb)

m进制转换为n进制-任意进制转换算法》上有2条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注