概述
将十进制的数字转换成各种不同的进制,这里以八进制为例,其实就是不断的除以八然后取余数,虽然用数组也不难实现,但是显然栈的后进先出的特性使得更容易理解了,具体实现方法如下:
int main(void)
{
SqStack S;
InitStack(S);
int num;
printf("请输入一个十进制数字:n");
// 将一个十进制数存在num中
scanf("%d", &num);
while( num > 0 )
{
// 取余数,并将余数入栈
Push(S, num%8);
// 取余数之后将整数除以八进行下一次取余直到最后一位
num = num / 8;
}
printf("转换为八进制:n");
while( !StackEmpty(S) )
{
// 依次将栈中的内容取出
Pop(S, num);
printf("%d", num);
}
system("pause");
}
想要转换成其它进制也是类似的方法,只要把8替换掉就可以了。在测试程序时,需要与我上一篇日志所提供的代码结合起来用,地址。
最后
以上就是跳跃花生为你收集整理的考研数据结构与算法之堆栈的使用(二)利用堆栈实现进制转换的全部内容,希望文章能够帮你解决考研数据结构与算法之堆栈的使用(二)利用堆栈实现进制转换所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复