数据结构(C语言实现)
上QQ阅读APP看书,第一时间看更新

3.2.1 数制转换

将十进制数N转换为x进制数,可以使用辗转相除法。算法步骤如下:

(1)将N除以x,取其余数;

(2)判断商是否为零,如果为零,结束程序;否则,将商送N,转(1)继续执行。

上面算法所得到的余数序列正好与x进制数的数字序列相反,因此利用栈的后进先出特性,先把得到的余数序列放入栈保存,最后依次出栈得到x进制数字序列。

例如,(1568)10=(3040)8,其运算过程如下:

十进制数转换为八进制数的算法描述如下:

思考:以上算法也可以直接利用数组或链表来实现,这个留给读者作为思考。