CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

怎样将二进制转换成字符串?在线等待。。。

楼主bowlder(玩石)2002-05-31 15:28:39 在 C/C++ / C语言 提问

要求用c来写,有没有现成的方法,我查了一下MSDN,没有找到。 问题点数:50、回复次数:13Top

1 楼xuying()回复于 2002-05-31 15:34:34 得分 0

假设你的二进制数存在int   i中。  
  char   buf[1024];  
  int   i;  
   
  sprintf(buf,   "%d",   i);Top

2 楼pangdola(Seeman)回复于 2002-05-31 15:42:26 得分 0

使用ecvt()函数  
          该函数原型在stdlib.h中  
          调用方式:char   *ecvt(double   value,int   ndigit,int   *dec,int   *sign)  
          它是将value转换成长度为ndigit的字符串。调用该函数后,由dec所指向的变量值表示小数点的位置。如果小数点在数的左边,则由dec所指向的数为负;如果由sign所指向的变量为负,则该数为负数。  
          函数ecvt()返回指向保存该数值的字符串的静态数据区的指针。Top

3 楼steedhorse(晨星)回复于 2002-05-31 15:51:36 得分 5

你的意思是把整数10转换成字符串“1010”吗?  
  自己些个函数不就行了?  
  void   IntToBStr(int   n   ,   char*   str)  
  {  
          int   dev   =   n;  
          int   i   =   0;  
          char   c;  
          int   len;  
   
          //开始依次除1取余,直到商为0  
          while(dev)  
          {  
                  str[i++]   =   '0'   +   (dev   %   2);  
                  dev   /=   2;  
          }  
          str[i]   =   '\0';  
   
          //别忘了结果要倒过来。  
          len   =   strlen(str);  
          for(i   =   0   ;   i   <   len   /   2   ;   i++)  
          {  
                  c   =   str[i];  
                  str[i]   =   str[len   -   i   -   1];  
                  str[len   -   i   -   1]   =   c;  
          }  
  }  
  没有调试,我想思路应该没有问题。Top

4 楼steedhorse(晨星)回复于 2002-05-31 15:53:52 得分 0

sorry,第一个注视错了,应该是“除2取余”  
  Top

5 楼spark_li(晕忽忽(恶人谷:通讯连长))回复于 2002-05-31 16:06:37 得分 0

帖主的问题说得有些模糊,  
  不知所云也。。。Top

6 楼terron(注定编程一生)回复于 2002-05-31 16:07:35 得分 5

上msdn   看看itoa函数的用法,就有你要的东东  
   
  #include   <stdlib.h>  
  #include   <stdio.h>  
   
  void   main(   void   )  
  {  
        char   buffer[20];  
        int     i   =   3445;  
        long   l   =   -344115L;  
        unsigned   long   ul   =   1234567890UL;  
   
        _itoa(   i,   buffer,   10   );  
        printf(   "String   of   integer   %d   (radix   10):   %s\n",   i,   buffer   );  
        _itoa(   i,   buffer,   16   );  
        printf(   "String   of   integer   %d   (radix   16):   0x%s\n",   i,   buffer   );  
        _itoa(   i,   buffer,   2     );  
        printf(   "String   of   integer   %d   (radix   2):   %s\n",   i,   buffer   );  
   
        _ltoa(   l,   buffer,   16   );  
        printf(   "String   of   long   int   %ld   (radix   16):   0x%s\n",   l,    
                                                                                                          buffer   );  
   
        _ultoa(   ul,   buffer,   16   );  
        printf(   "String   of   unsigned   long   %lu   (radix   16):   0x%s\n",   ul,  
                                                                                                          buffer   );  
  }  
   
  看来还是不怎么会用msdn阿,很好用的,呵呵!!Top

7 楼bowlder(玩石)回复于 2002-05-31 16:12:13 得分 0

感谢二位的帮助,但说实话我很菜,除了学校里学过的基本语法外,我没有正式的学过c,只是现在需要修改别人写的一个程序而已。我的目的是将文件中读出来的二进制流转换成字符串传给一个接口函数。我目前用下面的方法读出了一个图片的数据:  
  FILE   *fp;  
  fp   =   fopen("E:/short/photo/6348.gif",   "rb");  
  现在要做的是如何将fp的值赋给一个字符串变量,所以看了二位的答案我还是不知道应该怎么做,谢谢告知!Top

8 楼herbertke(Herbert Ke)回复于 2002-05-31 16:22:05 得分 0

你云:  
        "我的目的是将文件中读出来的二进制流转换成字符串传给一个接口函数"  
  i   云:  
        "照你的目的驱动的话,你为啥要把fp的值赋给一个字符串变量?"Top

9 楼bowlder(玩石)回复于 2002-05-31 16:27:44 得分 0

那个函数只接受字符串类型。Top

10 楼spark_li(晕忽忽(恶人谷:通讯连长))回复于 2002-05-31 16:49:24 得分 0

看帖主的意思,大概是要直接修改某可执行文件?  
  Top

11 楼zhrwolf1(清风)回复于 2002-05-31 23:40:34 得分 0

其实不论是二进制还是十六进制数,它转换成字符串都是一样的.  
        例:   int       i=85        
                char     ch=char(i);  
                ch将得i(85)的对应字符'U'Top

12 楼bowlder(玩石)回复于 2002-06-03 08:43:18 得分 0

感谢denghby(迪达)   ,要的就是这个。Top

相关问题

  • 如何把二进制字符串转换为ASCII字符串??
  • 一个简单的问题,字符串转换成二进制流.UP有分,在线等待。急
  • 字符串转二进制
  • 如何将十六进制的字符串转换为二进制的字符串?
  • 讨论:把字符串转换为二进制再输出的算法
  • 请问将字符串转换成二进制的函数是什么?
  • js怎样将一组二进制字符串101110100转换为二进制值,进而转换为十进制值?
  • 如何在一个字符串如“100101”和二进制数100101之间互相转换?
  • 请问怎样将一个double型数据的小数位的二进制数据转换成字符串?
  • 初学者请教,编写一段代码,把十进制数转换成二进制字符串!~

关键词

  • 二进制
  • 函数
  • 转换
  • 文件
  • 字符串
  • 变量
  • radix
  • ecvt
  • 指向
  • integer%d

得分解答快速导航

  • 帖主:bowlder
  • steedhorse
  • terron

相关链接

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

广告也精彩

反馈

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