财政涉农资金整合试点:求助C语言高手啊~

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 09:35:26
用C语言编写一函数,将一个十进制整数转换成二进制.(辗转相除)
不明白啊 怎么转换求助呀~
我刚学C语言..懂的语句不多啊。.谢谢高手门。

原理:将10进制数除2取余,然后余数倒排即是所求。
具体方法:可以把余数存储到一个数组里。然后倒序
也可以用递归。
说到着我觉得就差不多了
还有问题QQ540085595

说到进制转换,在汇编中用移位写很简单运行效率高,但在c语言中移位没那么自由,便用堆栈做。不过写起来有点长,忽然想到递归是隐式栈的调用。你看整个函数能有多长,用递归可读性也很强:binary(int n){if(n){binary(n/2);printf("%d",n%2);}}

#include<stdio.h>
#include<conio.h>
main()
{
int n;
clrscr();
printf("Please Enter a decimal num:");
scanf("%d",&n);
binary(n);
getch();
}
binary(int n){if(n){binary(n/2);printf("%d",n%2);}}

哈哈,有启发意义吧。

输入的值求除2的余数(用% )如果为0那么二进制第1位也为0
反之为1
将输入的值除以2之后(强制转换成INT型)
继续求%如果为0那么二进制第2位也为0反之为1
这样循环直到最后1位就可以了

实在不好意思 因为学的不好 所以尝试写没写出来 所以只能给点建议了

就是不停地除以2咯