上QQ阅读APP看书,第一时间看更新
3.2.1 数制转换
将十进制数N转换为x进制数,可以使用辗转相除法。算法步骤如下:
(1)将N除以x,取其余数;
(2)判断商是否为零,如果为零,结束程序;否则,将商送N,转(1)继续执行。
上面算法所得到的余数序列正好与x进制数的数字序列相反,因此利用栈的后进先出特性,先把得到的余数序列放入栈保存,最后依次出栈得到x进制数字序列。
例如,(1568)10=(3040)8,其运算过程如下:
十进制数转换为八进制数的算法描述如下:
思考:以上算法也可以直接利用数组或链表来实现,这个留给读者作为思考。