免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4272 | 回复: 14
打印 上一主题 下一主题

关于十进制与十六进制的互相转换的问题? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-02-24 15:20 |只看该作者 |倒序浏览
可否用sprintf,我的用法错在那里?

  1.    int i;
  2.    unsigned char buff[1024];
  3.    memset(buff,0,10);
  4.    i=10;
  5.    sprintf(buff,"%d",i);        //

  6. //16进制转10进制可否如下?
  7.    sprintf(i,"%x",buff);
复制代码


请大家帮忙看看,谢谢!

论坛徽章:
0
2 [报告]
发表于 2003-02-24 15:26 |只看该作者

关于十进制与十六进制的互相转换的问题?

直接使用strtol()就可以吧。

论坛徽章:
0
3 [报告]
发表于 2003-02-24 15:42 |只看该作者

关于十进制与十六进制的互相转换的问题?

可否用sprintf?

论坛徽章:
0
4 [报告]
发表于 2003-02-24 15:45 |只看该作者

关于十进制与十六进制的互相转换的问题?


  1.    int i;
  2.    unsigned char buff[1024];
  3.    memset(buff,0,10);
  4.    i=10;
  5.    sprintf(buff,"%d",i);        //

  6. //16进制转10进制可否如下?
  7.    sscanf(buff, "%x", &i);
  8.     printf("the value is %d\n", i);
复制代码


运行结果:the value is 16.

论坛徽章:
0
5 [报告]
发表于 2003-02-24 15:58 |只看该作者

关于十进制与十六进制的互相转换的问题?

sprintf(char *, format, source);
第一个参数是char *.

论坛徽章:
0
6 [报告]
发表于 2003-02-24 16:16 |只看该作者

关于十进制与十六进制的互相转换的问题?


  1. sprintf(buff,"%d",i);
复制代码

这一句已经没有实现十进制到16进制的转换,buff里面存放的不是 i 的十六进制码,所以得到了16,对吧?
那怎么实现?

论坛徽章:
0
7 [报告]
发表于 2003-02-24 18:39 |只看该作者

关于十进制与十六进制的互相转换的问题?

sprintf(buff,"%x",i);buff里就是16进制

论坛徽章:
0
8 [报告]
发表于 2003-02-25 08:57 |只看该作者

关于十进制与十六进制的互相转换的问题?

十进制和十六进制在赋值时不用专门去转换.
buff [0] = 10;和buff[0] = 0x0a;是一样的.
只是在打印时看你的需要了.
printf("%d\n",buff[0]);是按十进制打印.
printf("%x\n",buff[0]) 或printf("%02x\n",buff[0]);是按十六进制打印.

论坛徽章:
0
9 [报告]
发表于 2003-02-25 09:17 |只看该作者

关于十进制与十六进制的互相转换的问题?



  1.    int i;
  2.    unsigned char buff[1024];
  3.    memset(buff,0,10);
  4.    i=10;
  5.    sprintf(buff,"%d",i);        // 这里是把10 进制数转换成10进制字符串

  6. //16进制转10进制可否如下?
  7.    sprintf(i,"%x",buff);     //这句有错,把10进制转换成16进制应该如下
  8.   sprintf(buff,"%x",i);     //这里是把10 进制数转换成16进制字符串注意转换结果的前面没有"0x"


复制代码

论坛徽章:
0
10 [报告]
发表于 2003-02-25 09:35 |只看该作者

关于十进制与十六进制的互相转换的问题?

代码:


   int i;
   unsigned char buff[1024];
   memset(buff,0,10);
   i=10;
   sprintf(buff,"%d",i);        // 这里是把10 进制数转换成10进制字符串

//16进制转10进制可否如下?
   sprintf(i,"%x",buff);     //这句有错,把10进制转换成16进制应该如下
  sprintf(buff,"%x",i);     //这里是把10 进制数转换成16进制字符串注意转换结果的前面没有"0x"

because :
sprintf(char *, format, source);
第一个参数是char *,而你sprintf(i,"%x",buff); 第一个参数是int
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP