10进制转为2进制
除二取余,反向取位,即先得到的余数为对于二进制的最低位,应最后输出;最后的余数为最高位,应最先输出。
eg:
法一:递归法,利用递归函数的性质,
#include <iostream>
using namespace std;
void tentotwo(int ten){ //进制转换函数(递归法)
if(ten == 0)
return;
tentotwo(ten/2);
cout<<ten%2; //第一个输出的是二进制的最高位,即十进制数一直除到最后一个商为零时的余数
//接着便返回上一层输入次高位,以此类推
}
int main()
{
int ten = 8;
tentotwo(ten);
cout<<endl;
system("pause");
return 0;
}
法二:输出可用数组,或者链表
N进制转为10进制
第 i 位乘以N^(i - 1) 再每位相加即可。
N进制转为M进制
N进制转为10进制,再10进制转为M进制。