十进制数在任意进制下的转换
_RedForest · · 个人记录
关于进制转换的问题最详细解释
很久前曾经系统学习过进制转换的问题,但发现...忘了?!好吧所以就再重新学习下然后写篇博客吧。这次可不要再不求甚解了。
那么就开始吧,先说下最基础的,如何把十进制数 a 转化为任意正 r 进制数。
在十进制下
下面举个简单的例子,将十进制下的 6 转换为二进制。按照刚才的步骤,将其对 2 取模,发现是零,这里的意义其实就是, 6 在二进制下的最后一位是 0 ,因为它 % 2 为零,就说明它不需要
即为1 ×
下面贴一段代码:
#include <iostream>
#include <cstdio>
#include <stack>
using namespace std;
stack <int> s;
int main(){
int n,r;
scanf("%d%d",&n,&r); //十进制数 n 再 r 进制下
int t;
while(n){
t=n%r;
s.push(t); //因为我们是从后向前计算的,所以就用个栈存下
n/=r; //c++向零取整
}
while(!s.empty()){
cout<<s.top();
s.pop();
}
return 0;
}