首先是十进制转换成二进制,进制转二进制,基数就是2,用2整除一个十进制正整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数;如此进行,直到商为0;然后把先得到的余数作为二进制数的低位有效位,把后得到的余数作为二级制的高位有效位,依次排列起来。所谓有效位,就是不算前导0; alt 代码如下:

```#include<iostream>
using namespace std;
int main()
{
 int i, j;//定义循环变量;
 int a[1005];//定义一个储存二进制的数组;
 int num;
 cin >> num;//输入需要转换的10进制正整数;
 for (i = 0; num != 0; i++)
 {
 	a[i] = num % 2;//对num取余.......就是除以2的余数;
 	num = num / 2;//......每次取余之后num除以2的商;
 }
 for (j = i - 1; j >= 0; j--)//倒序输出余数,即为二进制数;
 {
 	cout << a[j];
 }
 cout << "\n";//输出结果就是10010110
 return 0;
}

``` js

如果想要换成其他进制,把除以2改为相应的数,例如想要改为十六就把2改为16 代码如下:

#include<iostream>
using namespace std;
int main()
{
 int i, j;//定义循环变量;
 int a[1005];//定义一个储存二进制的数组;
 int num;
 cin >> num;//输入需要转换的10进制正整数;
 for (i = 0; num != 0; i++)
 {
 	a[i] = num % 16;//对num取余.......就是除以16的余数;
 	num = num / 16;//......每次取余之后num除以16的商;
 }
 for (j = i - 1; j >= 0; j--)//倒序输出余数,即为十六进制数;
 {
 	cout << a[j];
 }
 cout << "\n";
 return 0;
}