| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 30306 人关注过本帖
标题:求怎样将一个十进制数转换为二进制数?
只看楼主 加入收藏
fobtgmi
Rank: 2
等 级:论坛游民
帖 子:28
专家分:34
注 册:2010-11-19
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:15 
求怎样将一个十进制数转换为二进制数?
怎样将一个十进制数转换为二进制数
搜索更多相关主题的帖子: 二进制 十进制 
2010-12-24 13:53
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
给你一个思路,将那个十进制数除以2,将余数输入到一个数组中,再将上次除得的商除以2,同理将余数存入数组中,如此到商为0时停.将那个数组反向输出就是了.
#include<stdio.h>
#include<stdlib.h>
viod main()
 {
   int i,n,k=1,a[50];  //50个二进制位够大的吧
   printf("enter n:");
   scanf("%d",&n);
   if(n<=0) exit(0); //小于0的不要,等于0也没有必要了
   a[0]=n%2;
   do
  {
    n=n/2;
    i=n%2;
    a[k++]=i;
   }while(n!=0);
   for(i=49;a[i]==0;i--) ;  //找到二进制开始的地方,也就是最后一个余数在数组中的位置
     for(;i>-1;i--)
          printf("%d",a[i]);
 }


[ 本帖最后由 qq1023569223 于 2010-12-24 14:33 编辑 ]

   唯实惟新 至诚致志
2010-12-24 14:03
fobtgmi
Rank: 2
等 级:论坛游民
帖 子:28
专家分:34
注 册:2010-11-19
收藏
得分:0 
能不能给我源码我真不会了
2010-12-24 14:36
yanglingwuu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2010-12-24
收藏
得分:0 
viod main() 你也写的 出来
2010-12-24 15:11
fobtgmi
Rank: 2
等 级:论坛游民
帖 子:28
专家分:34
注 册:2010-11-19
收藏
得分:0 
怎么楼上写得不对了吗?
2010-12-24 16:06
五当家
Rank: 12Rank: 12Rank: 12
等 级:火箭侠
威 望:2
帖 子:1112
专家分:3674
注 册:2010-10-20
收藏
得分:0 
回复 4楼 yanglingwuu
void main()不行吗?

经验积累中............
2010-12-24 16:18
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:10 
程序:
程序代码:
#include<stdio.h>
#include<conio.h>
void zhuanhuan(int b);
int main(int argc,char **argv)
{
    int b;
    printf("输入十进制数:\n");
    scanf("%d",&b);
    if(b>0)
    {
        zhuanhuan(b);

    }
/*    else这个我留了个接口方便实现负数转换
    {
    }*/
    printf("\n");
}
void zhuanhuan(int b)
{
    int a;
    if(b==0)
        return;
    a=b%2;
    b=b/2;
    zhuanhuan(b);
    printf("%d",a);

}
结果:
图片附件: 游客没有浏览图片的权限,请 登录注册


Go Go Go
2010-12-24 16:46
zhaoya881010
Rank: 9Rank: 9Rank: 9
来 自:芒砀古郡
等 级:蜘蛛侠
威 望:1
帖 子:339
专家分:1177
注 册:2010-11-21
收藏
得分:0 
第二个头文件没用在这里我忘了删掉了,递归实现

Go Go Go
2010-12-24 16:48
ping123321
Rank: 2
等 级:论坛游民
帖 子:15
专家分:23
注 册:2010-11-3
收藏
得分:0 
#include <stdio.h>
void main(  )
{
    int m, k;
    void dtoo( int  n ,int r );   
    printf("Pleae input the decimal number:");
    scanf("%d",&m);
    printf("\nPlease input a number in (2,8,16):");
    scanf("%d",&k);
    dtoo(m,k);
}
void dtoo(int n ,int r )
{
     if(n>=r)  dtoo(n/r,r);
     printf("%d",n%r);
}  

都有啊···
2010-12-24 17:00
JZY0801
Rank: 2
等 级:论坛游民
帖 子:25
专家分:36
注 册:2010-12-23
收藏
得分:0 
# include <stdio.h>
# include <string.h>

char bin[32] ;

int main()
{
    int n ;
    int i = 0 , flag = 0 ;   
    scanf("%d" , &n) ;
    if(n == 0)
        bin[i] = '0' ;
    if(n < 0)
    {
        n = -n ;
        bin[0] = '-' ;
        flag = 1 ;
        i = 1 ;
    }
    while(n)
    {
        bin[i] = n % 2 + '0' ;
        n /= 2 ;
        i++ ;
    }
    strrev(bin + flag) ;
    puts(bin) ;
    return 0 ;
}
2010-12-24 18:28
快速回复:求怎样将一个十进制数转换为二进制数?
数据加载中...
 
   



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

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