C语言:将输入的十进制正整数n转换为二进制数,并将转换结果输出,转换方法采用“除2取余”

方法必须是除2取余

1、打开visual C++ 6.0-文件-新建-文件-C++ Source File。

2、定义变量和数组:#include <stdio.h>#include <string.h>void main(){ long t1;int i, n, t, t3;

char a[100]。

3、 输入字符: printf("请输入字符:\n"); gets(a);  /*输入n进制数存到数组a中*/strupr(a);   /*将a中的小写字母转换成大写字母*/t3 = strlen(a);    /*求出数组a的长度*/t1 = 0; /*为t1赋初值0*/。

4、输入进制: printf("请输入n(2or8or16):\n");scanf("%d", &n);                                     /*输入进制数*/。

5、输出最后的结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-12

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

参考代码:

#include <stdio.h> 
int main()
{
 int n,a[100],i=0,j;
 scanf("%d",&n);
 while(n)
 {
   a[i++]=n%2;
n/=2;
 }
 for(j=i-1;j>=0;j--)
  printf("%d",a[j]);
 printf("\n");
 return 0; 
}
/*
输出: 
10
1010
*/

第2个回答  推荐于2017-09-04
#include <stdio.h>
void main()
{
int n,a[100];
printf("input the data:\n");
scanf("%d",&n);
int i=0;
while(n!=0)
{
if(n%2!=0)
a[i]=1;
else a[i]=0;
n/=2;
i++;
}
for(int j=i-1;j>=0;j--)
printf("%d",a[j]);
printf("\n");
}本回答被提问者采纳
第3个回答  2009-04-05
#include<stdio.h>
#define N 2
main(int a,int b,int c)
{
c && scanf("%d",&a) ? main(a, b, 0) : a ? b = a % 2, main(a/N, 0, 0), printf("%d",b) : 0;
}
第4个回答  2009-04-05
2楼正解.不过数组太大了吧.他说是正整数啊.就算DOUBLE也用不着100啊...

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网