用c语言编程,实现十进制和二进制的相互转化。

注意是相互转化啊,谢谢大神们。... 注意是相互转化啊,谢谢大神们。 展开
 我来答
cdyzxy
2014-03-05 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:85%
帮助的人:3776万
展开全部

#include<stdio.h>

int getnumber(char *s,int *n)
{ char *p=s;
  int k,m;
  *n=0; m=1;
  while ( *p != ')' ) p++;
  k=atoi(p+1); p--;
  if ( k==2 || k==10 )
  {   while ( *p!='(' ) { (*n)+=((*p)-'0')*m; m*=k; p--; }
      return k;
  }
  else return 0;
}

void exchange(char *s,int n,int k)
{ char str[80],str1[80];
  int e,m,i;
  e=( k==2 )?(10):(2); m=0;
  while ( n )
  { str[m]=n%e+'0'; n/=e; m++;
  }
  for ( i=0;i<m;i++ ) str1[i]=str[m-i-1];
  str1[i]=0;
  sprintf(s,"(%s)%d",str1,e);
}

void main()

{   char str[256],str1[256];
    int n,k;
    scanf("%s",str);
    k=getnumber(str,&n);
    if ( k )
    {   exchange(str1,n,k);
        printf("%s ==> %s\n",str,str1);
    }

}

chrx_1102
推荐于2017-09-14 · TA获得超过153个赞
知道小有建树答主
回答量:132
采纳率:100%
帮助的人:104万
展开全部
#include <stdio.h>
int main()
{
int Type,a,b[10],i=0,c=0;
printf("请输入转换类型,1:十进制转二进制;2:二进制转十进制\n");
scanf("%d",&Type);
printf("请输入原数据\n");
scanf("%d",&a);
switch(Type)
{
case 1:
while(a!=0)
{
b[i]=a%2;
a/=2;
i++;
}
printf("二进制为:");
i--;
for(;i>=0;i--)
printf("%d",b[i]);
printf("\n");
break;
case 2:
while(a!=0)
{
b[i]=a%10;
a/=10;
i++;
}
i--;
for(;i>=0;i--)
c=c*2+b[i];
printf("十进制为:%d\n",c);
break;
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三国紫星
2014-03-04 · TA获得超过798个赞
知道小有建树答主
回答量:232
采纳率:0%
帮助的人:134万
展开全部
你是初学吧,建议这个还是自己写。如果真弄不清,一般书上都会有的。另外,编程的问题还是去德问之类的网站上问吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式