【C++】进制转换

相信在这节课开始之前,很多同学们早就对进制和进制转换比较熟悉了。我们本节课先通过一个利用栈来实现进制转换的例子,带大家再深入的学习下进制和进制转换。

例题1:将一个十进制数n转换为二进制数。

解题思路:十进制数转换成二进制数,可以采用辗转相除、取余数的方法得到。例如十进制数11转换成二进制。先求余数11%2=1,求商11/2=5,然后再用商5再求其余数,求其商,直到商为0,结束。

11%2=1   11/2=5   5%2=1   5/2=2
2%2=0    2/2=1    1%2=1   1/2=0

先求出的余数是二进制数的低位,后求出的余数是二进制的高位,将得到的余数逆序输出就是所需要的二进制数,即11的二进制数为1011.如何将余数逆序输出呢?逆序输出正好符合栈的先进后出的性质,因此可以借助栈来实现(其实事实上我们一般更喜欢采用数组来解决进制转换类的问题)。

算法步骤:(1)先初始化一个栈s;(2)如果n!=0,将n%2入栈s,更新n=n/2;(3)重复运行第二步,直到n=0结束;(4)如果栈不空,弹出栈顶元素e,输出e,直到栈空。具体代码,请自行补充完整。

通过上面的例子,我相信大家对进制和进制转换都有了一个大致的了解,那么接下来我们再详细的学习下进制和进制转换相关方面的知识。


  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

10247D

我会继续努力,信息技术会越好

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值