![数据结构(C语言实现)](https://wfqqreader-1252317822.image.myqcloud.com/cover/699/43806699/b_43806699.jpg)
上QQ阅读APP看书,第一时间看更新
3.2.1 数制转换
将十进制数N转换为x进制数,可以使用辗转相除法。算法步骤如下:
(1)将N除以x,取其余数;
(2)判断商是否为零,如果为零,结束程序;否则,将商送N,转(1)继续执行。
上面算法所得到的余数序列正好与x进制数的数字序列相反,因此利用栈的后进先出特性,先把得到的余数序列放入栈保存,最后依次出栈得到x进制数字序列。
例如,(1568)10=(3040)8,其运算过程如下:
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/77_01.jpg?sign=1738932134-L94MakguMXJ2GVkylxZ0fYPqTmdTdtfZ-0-249bc5bd0f638c6f0266be6fdab4390f)
十进制数转换为八进制数的算法描述如下:
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/77_02.jpg?sign=1738932134-53HC2ohM31wyxDy0LXnBtW9dgDIG7Fh9-0-cd3eb2630d70c7218e65b8103d597815)
思考:以上算法也可以直接利用数组或链表来实现,这个留给读者作为思考。