| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 8953 人关注过本帖
标题:这是一个将十进制数转化为二进制数的程序
取消只看楼主 加入收藏
赤壁男儿
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2009-12-26
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:2 
这是一个将十进制数转化为二进制数的程序
#include<stdio.h>
int transform(int dnum,int *bin);
void inv(int *a,int length);
void myoutput(int *a,int length);
main()
{
    int k,m,*q,l;
    q=&l;
    printf("请输入一个十进制的数\n");
    scanf("%d",&k);
    m=transform(k,q);
    inv(q,m);
    printf("转化后的数是\n");
    myoutput(q,m);
}
int transform(int dnum,int *bin)
{
    int i=0,b=1;
    int a[100];
    bin=a;
    a[i]=dnum%2;     //将第一次的余数存储在a[0]中;
    i=1;
    while(b!=0)
    {
        b=dnum/2;//整数求商
        a[i]=b%2;求余数
        i++;
    }
    return i-1;
}
void inv(int *a,int length)
{
    int *p,*q,temp;
    p=a;q=a+length-1;
    for(;p<=q;q--,p++)
    {
        temp=*p;
        *p=*q;
        *q=temp;
    }
}
void myoutput(int *a,int length)
{
    int i;
    for(i=0;i<length;i++)
        printf("%3d",*(a+i));
}
//十进制转化为二进制数
//这个程序有问题,但不知道那里有错误
搜索更多相关主题的帖子: 十进制 二进制数 
2010-03-30 22:23
赤壁男儿
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2009-12-26
收藏
得分:0 
那请您给一个答案把!
2010-03-31 12:22
赤壁男儿
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2009-12-26
收藏
得分:0 
#include<stdio.h>
int transform(int dnum,int *bin);
void inv(int *a,int length);
void myoutput(int *a,int length);
main()
{
    int k,m,*q,l;
    q=&l;
    printf("请输入一个十进制的数\n");
    scanf("%d",&k);
    m=transform(k,q);
    inv(q,m);
    printf("转化后的数是\n");
    myoutput(q,m);
}
int transform(int dnum,int *bin)//我的思路是降第一次的余数存储在数组的第一个位置,再求第一次除以2后到商。再利用循环重复上面操作。知道商为零。
{
    int i=0,b=1;
    int a[100];
    bin=a;
    a[i]=dnum%2;     //将第一次的余数存储在a[0]中;
    i=1;
    while(b!=0)
    {
        b=dnum/2;//整数求商
        a[i]=b%2;求余数
        i++;
    }
    return i-1;
}
void inv(int *a,int length)//根据二进制数转化为十进制的特点,再将数组中的数倒置过来即为所求二进制数
{
    int *p,*q,temp;
    p=a;q=a+length-1;
    for(;p<=q;q--,p++)
    {
        temp=*p;
        *p=*q;
        *q=temp;
    }
}
void myoutput(int *a,int length)//输出逆制后的数组
{
    int i;
    for(i=0;i<length;i++)
        printf("%3d",*(a+i));
}
//十进制转化为二进制数
//这个程序有问题,但不知道那里有错误

2010-03-31 15:00
快速回复:这是一个将十进制数转化为二进制数的程序
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012254 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved