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

 我来答
笑容满面6312
2011-06-25 · TA获得超过183个赞
知道答主
回答量:449
采纳率:0%
帮助的人:86.2万
展开全部
第一种方法:
程序:
#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 "<<value<<endl;
}
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 "<<value<<endl;
}
double power(double x,int n)
{double val=1.0;
while(n--)
val*=x;
return(val);
}
a399495
2011-06-24 · TA获得超过243个赞
知道答主
回答量:48
采纳率:100%
帮助的人:71.3万
展开全部
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

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
青竹有情
2011-06-24 · TA获得超过120个赞
知道答主
回答量:81
采纳率:0%
帮助的人:71.3万
展开全部
#include<iostream>
using namespace std;

int main()
{
int a,n,i;
i=0;
int b[50];
cout<<"请任意输入一个数:"<<endl;
cin>>a;
cout<<"请输入你要转换的进制:"<<endl;
cin>>n;
while(a)
{
b[i]=a%n;
a=a/n;
i++;
}
i=i-1;
while(i>=0)
{
cout<<n<<"进制为:"<<b[i]<<endl;
i--;
}
return 0;
}
有什么不了解的可问我......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-06-25
展开全部
#include <stdio.h>
#include <stdlib.h>
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式