CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

不是我不明白,这世界变化快,二进制转十进制

楼主lixunhua(李寻花)2004-08-03 15:44:58 在 C/C++ / C语言 提问

现在求类似这个代码的“二进制转十进制代码”  
  这个是醉书生写的十进制转二进制:  
   
  #include   <stdio.h>  
  #include   <stdlib.h>  
  #include   <string.h>  
   
  //   将   n   以二进制串存到   str  
  char*   DtoB(char   *str,   unsigned   long   n)  
  {  
          int   i;  
          unsigned   long   m   =   0x80000000;  
           
          for(i   =   0;     i   <   32;     ++i)  
          {  
                  str[i]   =   (m   &   n)   ?   '1'   :   '0';  
                  m   >>=   1;  
          }  
          str[32]   =   '\0';  
          return   str;  
  }  
  //   从二进制串中读数  
  unsigned   long   BtoD(char   *str)  
  {  
          int   i;  
          unsigned   long   m;  
          unsigned   long   n   =   0;  
          int   len   =   strlen(str);  
   
          if   (len   >   32)  
                  len   =   32;  
   
          m   =   0x80000000   >>   (32   -   len);  
   
          for(i   =   0;     i   <   len;   ++i)  
          {  
                  if   (str[i]   ==   '1')   //   非法字符认作   0  
                          n   |=   m;  
                  m   >>=   1;  
          }  
          return   n;  
  }  
  问题点数:100、回复次数:14Top

1 楼xpdavis(咕嘟-不想孤独)回复于 2004-08-03 15:46:36 得分 10

看不出有什么问题Top

2 楼yiana1002(新的开始)回复于 2004-08-03 15:51:21 得分 5

楼主要干吗?Top

3 楼qingyuan18(zealot_tang)回复于 2004-08-03 17:01:18 得分 10

用库函数:  
  itoa("101010101",temp,10);     /*temp是字符数组*/  
  int   i=strtol(temp,NULL,10);  
  Top

4 楼Behard(我爱天安门)回复于 2004-08-03 18:06:47 得分 5

楼主要干嘛?Top

5 楼freefalcon(心宇—消失中...)回复于 2004-08-03 18:19:09 得分 5

楼主要干嘛?Top

6 楼ma100()回复于 2004-08-03 18:46:55 得分 10

void   main()  
  {  
  long   n;  
  char   a[33];  
  n=BtoD("1010");  
  DtoB(a,n);  
  printf("%s",a);  
  }  
  运行正常啊(把你的DTOB返回值变为VOID)  
  只要叔祖>=33就行Top

7 楼UPCC(杂食动物)回复于 2004-08-03 18:56:08 得分 5

函数写得很有意思,收藏了。Top

8 楼micty(你说世界可以被我们平分?)回复于 2004-08-03 19:45:44 得分 5

写的不错,楼主想干什么?一起分享吗,不客气了Top

9 楼021850524(吸血鬼牌卫生巾)回复于 2004-08-04 09:12:46 得分 10

直接用itoa()这个函数就行了.可以指定进制的.Top

10 楼zwzzwz()回复于 2004-08-04 09:49:26 得分 10

最好能解释一下  
    for(i   =   0;     i   <   32;     ++i)  
          {  
                  str[i]   =   (m   &   n)   ?   '1'   :   '0';  
                  m   >>=   1;  
          }  
  Top

11 楼lixunhua(李寻花)回复于 2004-08-04 23:52:21 得分 0

upTop

12 楼postage(jh)回复于 2004-08-05 08:31:34 得分 10

str[i]   =   (m   &   n)   ?   '1'   :   '0';  
  这不清零了吗?0与0,0与1不都是零呀。M=0xFFFFFFFF还差不多。Top

13 楼houhw1728(爱你)回复于 2004-08-05 13:05:26 得分 5

同一楼上Top

14 楼tyglikelove(火花)回复于 2004-08-05 13:29:49 得分 10

强制转换类型!Top

相关问题

  • 二进制转换成十进制
  • 急!二进制转成十进制!
  • 请问十进制转换为二进制的函数和二进制转换为十进制的函数?
  • 有没有二进制转十进制及十进制转二进制的函数?
  • 把十进制转换成二进制的函数是什么?
  • VB中怎样把二进制转换成十进制?
  • 如何将十进制数转换成二进制数?
  • 十进制转化为二进制问题--100分!
  • vb中,如何把十进制转换为二进制
  • 十进制和二进制转换的问题!

关键词

  • 二进制
  • 十进制
  • dtob
  • unsigned long
  • len
  • str
  • temp
  • include
  • char

得分解答快速导航

  • 帖主:lixunhua
  • xpdavis
  • yiana1002
  • qingyuan18
  • Behard
  • freefalcon
  • ma100
  • UPCC
  • micty
  • 021850524
  • zwzzwz
  • postage
  • houhw1728
  • tyglikelove

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo