C语言十进制转二进制,要求用数组来储存每次对2除取余的结果.我是菜鸟,希望达人不要用太复杂的语句,谢谢
十进制转二进制可以使用库函数itoa。
itoa函数原型:char*itoa(int value,char*string,int radix);
功能:将任意类型的数字转换为字符串。在<stdlib.h>中与之有相反功能的函数是atoi。
nt value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等。
扩展资料:
方法
#include<stdio.h>
int main(void)
{ int i=0,n,a[32];
printf("请输入一个十进制整数.\n");
scanf("%d",&n);
while (n>0)
{a[i]=n%2;
i=i+1;
n=n/2; }
printf("十进制整数转换为二进制数是:\n");
for(i--;i>=0;i--)
printf("%d",a[i]);
printf("\n");
return 0;}
十进制整数转换为二进制整数的方法:
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2016-10-06
void main()
{
int array[30];//用来保存计算结果
int x,i=0;
printf("请输入一个整数将其转换为:");
scanf("%d",&x);
while(x)
{
array[i]=x%2;
x=x/2;
i++;
}
printf("结果为:");
for(i=i-1;i>=0;i--)//循环打印输出,注意是从后往前打印
printf("%d",array[i]);
printf("\n");
}本回答被提问者和网友采纳
{
int array[30];//用来保存计算结果
int x,i=0;
printf("请输入一个整数将其转换为:");
scanf("%d",&x);
while(x)
{
array[i]=x%2;
x=x/2;
i++;
}
printf("结果为:");
for(i=i-1;i>=0;i--)//循环打印输出,注意是从后往前打印
printf("%d",array[i]);
printf("\n");
}本回答被提问者和网友采纳
第2个回答 2010-11-24
# include<stdio.h>
void main()
{ int m;
int i=0, a[9];
printf("输入一个数:");
scanf("%ld",&m);
while(m!=0)
{ a[i]=m%2;
m=m/2;
i++;
}
for(i=i-1;i>=0;i--)
printf("%d",a[i]);
}
void main()
{ int m;
int i=0, a[9];
printf("输入一个数:");
scanf("%ld",&m);
while(m!=0)
{ a[i]=m%2;
m=m/2;
i++;
}
for(i=i-1;i>=0;i--)
printf("%d",a[i]);
}
第3个回答 2010-11-25
恩,好好学