用C++编写一个 输入一种数的数据及数制,输出这个数的其他数制表示,要求包括二、八、十和十六进制

2024-11-12 11:45:24
推荐回答(4个)
回答1:

第一种方法:
程序:
#include (iostream.h)
double power(double x,int n);
void main(void)
{int i;
int value=0;
char ch;
cout<<"Enter an 8 bit binary number ";
//输入一个8位二进制数
for(i=7;i>=0;i--)
{cin>>ch;
switch(ch)
{case '1':1*power(8,i);
break;
case '2':2*power(8,i);
break;
case '3':3*power(8,i);
break;
case '4':4*power(8,i);
break;
case '5':5*power(8,i);
break;
case '6':6*power(8,i);
break;
case '7':7*power(8,i);
break;
}
//if(ch=='1')
//value+=int(power(2,i));
//int强制类型转换
}
cout<<"Decimal value is "<}
double power(double x,int n)
{double val=1.0;
while(n--)
val*=x;
return(val);
}
---------------------
第二种方法:
程序:
#include (iostream.h)
double power(double x,int n);
void main(void)
{int i;
int value=0;
char ch;
cout<<"Enter an 8 bit binary number ";
//输入一个8位二进制数
for(i=7;i>=0;i--)
{cin>>ch;
if(ch=='1')
value+=int(power(2,i));
if(ch=='2')
value+=int(power(2,i));
if(ch=='3')
value+=int(power(2,i));
if(ch=='4')
value+=int(power(2,i));
if(ch=='5')
value+=int(power(2,i));
if(ch=='6')
value+=int(power(2,i));
if(ch=='7')
value+=int(power(2,i));
//int强制类型转换
}
cout<<"Decimal value is "<}
double power(double x,int n)
{double val=1.0;
while(n--)
val*=x;
return(val);
}

回答2:

int main()
{
int x;
scanf("%d", &x);
// 输出2进制
char bin[1000];
itoa(x,bin,2);
printf("二进制:%s\n",bin);
// 输出8进制
printf("x=%o\n",x) ;
// 输出16进制
printf("x=%x\n",x) ;

return 0

}

回答3:

#include
using namespace std;

int main()
{
int a,n,i;
i=0;
int b[50];
cout<<"请任意输入一个数:"< cin>>a;
cout<<"请输入你要转换的进制:"< cin>>n;
while(a)
{
b[i]=a%n;
a=a/n;
i++;
}
i=i-1;
while(i>=0)
{
cout< i--;
}
return 0;
}
有什么不了解的可问我......

回答4:

#include
#include
int main()
{
int base, val;
char str[100];
scanf("%s%d", str, &base);//输入数字及其进制
val = strtol(str, '\0', base);//将其他进制的数转化为10进制数

itoa(val, str, 2);//没有直接打印2进制的格式,所以要自己转化下

printf("二进制:%s\n", str);
printf("十进制:%d\n", val);
printf("八进制:%o\n", val);
printf("十六进制:%x\n", val);
return 0;
}