C语言网

 找回密码
 加入社区!

QQ登录

只需一步,快速开始

查看: 1348|回复: 12

用C语言十进制转化为二进制的三种方法!你能用几种?! [复制链接]

Rank: 4

主题
7
帖子
116
C币
244 枚
在线时间
101 小时
发表于 2010-5-27 18:12:59 |显示全部楼层
我今天下午研究十进制转化为二进制的三中方法如下,我觉得能用多种的方法做出一个题目是很捙! #include<stdio.h>
#define M (sizeof(int)>2?32:16)
int main(void)
{
int p,index=0,bin[M]={0};
int num;
printf("please enter a number:");
scanf("%d",&num);
if(num<0)
  printf("data Eorror!");
else if(num==0)
  printf("the result is zero!");
else
    {
   do
   {
    bin[index]=num%2;
    num/=2;
    index++;

   }while(num);

   index=M-1;
   while(!bin[index])
   {
    --index;

   }
         p=index;

   printf("result is the number:");
   for(index=p;index>=0;index--)
    printf("%d",bin[index]);
   printf("\n");
}
return 0;

}
/***********************************/
#include<stdio.h>
void dec_bin(int n);
int main(void)
{
int num;
printf("please a number:");
    scanf("%d",&num);
if(num<0)
  printf("data Eorror!");
else
  printf("the result is:");
dec_bin(num);
printf("\n");
return 0;
}
void dec_bin(int n)
{
int mod;
mod=n%2;
if(n>=2)
  dec_bin(n/2);
printf("%d",mod);
return;
}

/***********************************/
#include<stdio.h>
int main(void)
{
unsigned num,Mask;
Mask=sizeof(int)>2?0x80000000:0x8000;
printf("please a number:");
scanf("%d",num);
if(num==0)
  printf("the result is zero!");
else
{
  while(Mask)
  {
   if(num&Mask)
   {
    while(Mask)
    {
     printf("%d",num&Mask?1:0);
     Mask>>=1;

    }
    printf("\n end!");
    break;
   }
   Mask>>=1;
  }
    }
return 0;
}

Rank: 8Rank: 8

主题
24
帖子
636
C币
758 枚
在线时间
504 小时
发表于 2010-5-27 22:03:46 |显示全部楼层
顶!!!你的水平真牛!!!你学c++l了啊!!!我想请问你一下就是那本《c和指针》怎么样啊?我在网上定了一本
因为执着,所以成功

Rank: 4

主题
7
帖子
116
C币
244 枚
在线时间
101 小时
发表于 2010-5-27 22:33:37 |显示全部楼层
本帖最后由 klttl 于 2010-5-27 22:51 编辑

呵呵!第三种方法我用的是C语言中的位运算!我没用c++!我建议你先不要急着学C++,还是先学汇编或数据结构吧!这本书我不知道!但是我觉得《windows程序设计》应该蛮好的,都是用C语言描述的!你可以看看!

Rank: 8Rank: 8

主题
24
帖子
636
C币
758 枚
在线时间
504 小时
发表于 2010-6-1 08:48:14 |显示全部楼层
哦,听人说《Windows程序设计》和《c和指针》和《c专家编程》和《c缺陷和陷阱》是学c的必备四本书,我准备在一定的时间内仔细看看
因为执着,所以成功

Rank: 4

主题
7
帖子
116
C币
244 枚
在线时间
101 小时
发表于 2010-6-1 12:31:22 |显示全部楼层
光看书是没用的!既然有一定的基础了你就要多上机写程序!这样才能到实际应用时候才能手到擒来!要不然你书看的在多都还是没用的!你只有在不懂的时候在看书这样你才会了解的更好,而且减少了重复的劳动量!

Rank: 1

主题
0
帖子
7
C币
7 枚
在线时间
0 小时
发表于 2010-6-5 18:13:30 |显示全部楼层
言之有理,谢谢楼主的无私奉献!

Rank: 6Rank: 6

主题
68
帖子
348
C币
578 枚
在线时间
57 小时
发表于 2010-7-9 05:44:00 |显示全部楼层
KTTL版主 你好可以共享一下你的电子书《Windows程序设计》吗?

我找了老久没有找到

Rank: 1

主题
0
帖子
9
C币
6 枚
在线时间
2 小时
发表于 2010-7-19 17:57:14 |显示全部楼层
受教!受教!

Rank: 1

主题
0
帖子
24
C币
25 枚
在线时间
1 小时
发表于 2010-7-19 18:07:11 |显示全部楼层
呵呵 ,不错啊,是应该值得学习一下啊

Rank: 1

主题
0
帖子
8
C币
8 枚
在线时间
1 小时
发表于 2010-8-2 21:43:53 |显示全部楼层
进制转换的方法比较多,楼主能列出这几种很牛了,《c和指针》 这本书很不错,强烈建议去看,至于《windows程序设计》,还是等手熟了再看吧
您需要登录后才可以回帖 登录 | 加入社区!

C语言 ( 粤ICP备11042647号-2 )

GMT+8, 2012-2-7 22:35

©2009-2011 cyuyan.com.cn

回顶部