另外定义了一个数组array[8],用于存放输入的八位二进制数。
2、然后使用了一个for循环语句,用于输入八位二进制数。
3、在Sum函数中,又声明了一个power函数,power函数的作用是求2的n次方。
4、接着,使用了一个for循环语句,i用于控制循环的次数,n从最高的指数7开始每次循环减一,如果指数大于或等于零的,就进行循环。
5、在power函数中,如果b等于零,即指数为零,则返回1,否则就进入一个循环,j用于控制循环次数,有疑问的可以用笔算算乘2的个数对不对,最后将i返回。
6、最后看一下运行的结果。
#include <stdio.h>void main()
{
int a
scanf(\"%d\",&a)//输入一个10进制数。
int result=0//存储a的二进制结果。
int p=1//p=1表示个位数
do
{
int b=a%2//b是余数,第一个余数是二进制的个位。
result=result+p*b
p=p*10//*10表示下个是10位数。
a=a/2
}while(a)
printf(\"\\n%d\\n\",result)
}
程序在vc6.0下编译通过可以直接用,你自己看看吧,思路是a%2的结果是二进制的个位数,(a/2)%2的结果是二进制的十位数所以p扩大10倍,以后依次类推。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)