![数据结构(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=1739533549-6LOI03Lzlys9pD2SnOi971mECQpnAypI-0-9dd6c0f2fb524b3331e5a40be0550555)
十进制数转换为八进制数的算法描述如下:
![](https://epubservercos.yuewen.com/2EFA35/23083815801896206/epubprivate/OEBPS/Images/77_02.jpg?sign=1739533549-pkkiplsEMRTcX8GtBeeHJzRkOf9sWaWD-0-d34a2f90fe0cb130e071a5bed2dd711a)
思考:以上算法也可以直接利用数组或链表来实现,这个留给读者作为思考。