十进制转化为二进制总结

195 阅读1分钟

方法一

思路:我们这里直接先把十进制转化为二进制数,然后再输出:说到这我们应该就会想到要使用pow()函数了 代码如下:

#include<iostream>
#include<cmath>
using namespace std;
int main(){
int n,k=0,j=0;
cout<<"请输入想要转化的数:"<<endl;
cin>>n;
while(n!=0){
j=n%2*pow(10,k++)+j;//然后产生的数放在前面,其实也是一种倒序的思想;
n/=2;
}
cout<<m;
return 0;
}

方法二

上面我们使用了倒序思想,而倒序思想最简洁的莫过于递归了;现在我们尝试用递归解决问题

#include<iostream>
void db(int n);//函数声明不要忘了;
using namespace std;
int main(){
int n,k=0,j=0;
cout<<"请输入想要转化的数:"<<endl;
cin>>n;
db(n);
return 0;
}
void db(int n){
if(n==1||n==2){
cout<<n;
}
else{
db(n/2);
cout<<n%2;
return;//这里我们提前返回空,但也可以不写,因为函数结束时系统会自动返回空;(所以写在else外面也是可以的)
}
}

到这我们应该能体会到递归的优越性,希望平时我们可以多多留心递归的使用;