进制数
编写程序,输出任意两个数之间每个数值的二进制、三进制、八进制、十进制、16进制。输入原数进制,按照进制要求,输入一个左边界数值(下记作a),一个右边界数值(下记作b),指定转换源进制类型和目标进制类型,针对 [a, b]区间内的每个数值n,进行相应进制转化,并输出转换结果。
比如,输入
选择原数十进制
起始数值:2
终止数值:4
指定转换成二进制:
2 = 0010
3 = 0011
4 = 0100
数值 2 3 4
二进制 0010 0011 0100
注意:非十进制的输入输出问题,参考计算机上的计算器。
进阶:设置约束条件,比如转换成二进制后不超过8位,且高三位为100的数值。
#include <iostream>
using namespace std;
void fun(int c,int m)
{
int tt,i;
char e[40]={0};
i = 0;
if (m == 0)
return;
do
{
tt = c%m;
if(m == 16 && tt >= 10)
e[i++] = 'A' + (tt - 10);
else
e[i++] = '0' + tt;
c = c / m;
} while (c != 0);
for (int j = i - 1; j >= 0; j--)
{
cout << e[j];
}
cout << endl;
return ;
}
int main()
{
int a,b;
cout << "起始数值:" ;
cin >> a;
cout << "终止数值:";
cin >> b;
cout << "制定转换为二进制:"<< endl;
for(int i = a;i<=b;i++)
fun(i,2);
cout << "指定转换为三进制:" << endl;
for(int i = a;i<=b;i++)
fun(i,3);
cout << "指定转换为八进制:" << endl;
for(int i = a;i<=b;i++)
fun(i,8);
cout << "指定转换为十六进制:" << endl;
for(int i = a;i<=b;i++)
fun(i,16);
return 0;
}