免费注册 查看新帖 |

Chinaunix

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

有办法转换吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-10-13 16:56 |只看该作者 |倒序浏览
需要发送一个数据包,具体的数据是16进制的,写在了一个文本文档里面,形式如:ff 0a 11 33 等,现在在发包时,需要将这些值打入包中,可是直接从文档中读出来的是字符,怎样将文本文档中记录的ff转换成真正的十六进制表示的ff?
即:
char c=0xff;

论坛徽章:
0
2 [报告]
发表于 2005-10-13 17:24 |只看该作者

有办法转换吗?

sscanf可以

论坛徽章:
0
3 [报告]
发表于 2005-10-13 17:35 |只看该作者

有办法转换吗?

自己写...


  1. #include <stdio.h>;
  2. #include <ctype.h>;

  3. int ascii2int(char * s)
  4. {
  5.     int  b=0;

  6.     b=(toupper(s[0])-((toupper(s[0])>;='A')?0x37:0x30))<<4;

  7.     b|=toupper(s[1])-((toupper(s[1])>;='A')?0x37:0x30);

  8.     return b;
  9. }

  10. int main()
  11. {
  12.     char a[]="ff";

  13.     printf("%d\n",ascii2int(a));

  14.     return 0;
  15. }
复制代码


没处理错误,效率低,不过说明问题,呵呵

论坛徽章:
0
4 [报告]
发表于 2005-10-13 21:00 |只看该作者

有办法转换吗?

strtol

论坛徽章:
0
5 [报告]
发表于 2005-10-13 21:08 |只看该作者

有办法转换吗?

谢谢楼上的回复,让我有多学了一招啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP