进制转化
上个星期学了栈和队列,正好下个星期的上机作业是“进制转换”,一般进制转换是通过短除法(除k取余法)来转化,除完之后由下往上将这些数组合在一起,这不这好和栈的特点一样吗?嗯,顿时我的手就有点痒了,于是中午就敲了敲,下午Debug了一下,感觉这问题要考虑全面有点难啊,写个简单的得了。这大于10进制的还涉及字母,还是简单的考虑吧。
基本思路
- 首先你得把用户输入的数转化为10进制(暂时不要考虑输入大于10进制)
- 将十进制的数转化为其他进制(同样只考虑不大于10进制的)
@timeline{
输入数(eg:1998),类型为int,以及对应的进制k
@item{
将组成这个数的这些数字分开,1 9 9 8
这里并不能用char
来分开它们,因为数据类型
不仅仅包含一个取值集合,同时也包含了定义在这个取值集合上的一组 操作
,可以通过除10
取余来分离
}
@item{
转化为10进制
将分离出来的数字依次与对应的k
的幂相乘,最后求和
}
@item{
除m取余,转化为m进制
这里使用%
求模,int
强制类型转化求商
}
输出计算后的结果
}
栈的实现
k进制转化为10进制(k<=10)
1 | //--------------------------------------其他进制转化为十进制-------------------------------------- |
10进制转化为m进制(m<=10)
1 | //--------------------------------------十进制转化为其他进制-------------------------------------- |
(未完待续。。。。)
代码已经同步到仓库:Stuck
又到了毕业季🎓,回首高中的日子,满满的回忆。
- 本文链接: https://ourfor.top/article/value-convert/
- 版权声明: 本博客所有文章除特别声明外,均采用 ©BY-NC-SA 许可协议。转载请注明出处!