永发信息网

C语言谁帮我写段进制转换程序

答案:3  悬赏:50  手机版
解决时间 2021-04-22 05:04
  • 提问者网友:辞取
  • 2021-04-21 08:31
谁能帮我写个十进制转二进制程序!新手~最好说明每步意思!
最佳答案
  • 五星知识达人网友:怀裏藏嬌
  • 2021-04-21 09:52

帮你写了个. 有什么不明白的再追问.


#include <stdio.h>


int main()
{
int i,n;
char binary[20]; //保存二进制数.
scanf("%d",&n); //输入十进制数.


i=0; //字符数组下标.初始化为0;



while(n) //判断除数是否为0.不为0则进入循环取余数.并将除数除2;
{
binary[i++]=n%2+'0'; //循环将n对2求余.余数保存到数组brnary中;
n=n/2; //将除数除以2.
}

//将数组倒序输出. 也就是从后往前输出这个十进制数的余数.
for(i=i-1;i>=0;i--)
{
printf("%c",binary[i]);
}


return 0;
}


全部回答
  • 1楼网友:动情书生
  • 2021-04-21 11:29
源代码如下: #include <stdio.h>//将任何一个十进制正整数转换成二进制数并输出 #define M 16 #define N 16 int *change(int i);//返回值为一个指针变量的地址 int residue[N]={0};//设置一个全局变量 main() { int m,n,bin[M]={0},*p; printf("Please input a Decimal integer: "); scanf("%d",&m); while(m>65535 || m<0) { printf("超出正整数界限,请重新输入: "); scanf("%d",&m); } printf("The Decimal %d change Binary is: ",m); p=change(m); for(n=15;n>=0;n--) { printf("%d",*(p+n)); if(n==8) printf(" "); } printf("\n"); } int *change(int j) { int k=0,quotient=1;//residue:余数 quotient:商 while(quotient!=0) { residue[k]=j%2;//求余后存入数组 quotient=j/2;//求商,直到商为0 j=quotient; k++; } return (residue); }
  • 2楼网友:不想翻身的咸鱼
  • 2021-04-21 11:21

#include<stdio.h> #include<malloc.h> #include<stdlib.h>

#define L sizeof(struct Conversion)

typedef struct Conversion //存放二进数结构体 { unsigned long n; struct Conversion* next; }*pl;

pl create(unsigned long n) //创建栈式链表 { pl head=NULL,p; //初始化栈 while(n) { p=(pl)malloc(L); p->n=n%2; //余数入栈 p->next=head; head=p; n=n/2; //除2 } return head; }

void main() { pl del(pl); pl fi,pf; unsigned long a; printf("输入要转换的十进制数:\t"); scanf("%d",&a); fi=create(a); pf=fi; printf("对应二进数为:\t"); while(pf!=NULL) { printf("%d",pf->n); pf=pf->next; } del(fi); printf("\n\a"); system("pause"); //执行DOS命令 }

pl del(pl h) //释放内存 { pl p,q; if(h==NULL) { printf("error...\n"); } else { p=h; while(p) { q=p; p=p->next; free(q); } free(p); } return 0; }

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯