公 告

欢迎各位网友添加友情链接,在您添加本博客:http://linux0818.blogspot.com/ 做为链接后, E-mail:linux0818@gmail.com给我,我将将您的网址添加到本博客。

2008年10月14日星期二

十进制转换二进制程序

源代码如下:
#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);
}
/*main()//上面是以函数形式配合指针传递地址的写法,下面是在整个主函数中完成转换
{int m,k=0,n,bin[M]={0},quotient=1;
printf("Please input a Decimal integer: ");
scanf("%d",&m);
printf("The Decimal %d change Binary is: ",m);
while(quotient!=0)
        {
        bin[k]=m%2;
        quotient=m/2;
        m=quotient;
        k++;
        }
for(n=15;n>=0;n--)
        {
        printf("%d",bin[n]);
        if(n==8) printf(" ");
        }
printf("\n");
}*/

--
/**************************************/
Name: Xiong Feng
E-mail:linux0818@gmail.com
MSN:linux0818@hotmail.com
QQ:23562033
Address: GuangZhou.China
/**************************************/

没有评论:

发表评论