各位:请教如何用C语言将16进制数转换成ASCII字符串

[复制链接]
17206|13
 楼主| lyons 发表于 2008-4-26 07:35 | 显示全部楼层 |阅读模式
我用KEILC51,读回来的是16进制数,送去显示的必须是ASCII,怎么转换?好像C语言没有专门的函数吧
dld2 发表于 2008-4-26 07:55 | 显示全部楼层
西安周公 发表于 2008-4-26 11:39 | 显示全部楼层

除以100、取100余除以10、取10余,再将各数或30H

王紫豪 发表于 2008-4-26 11:59 | 显示全部楼层

楼上都是正解,楼主好好去学c

 楼主| lyons 发表于 2008-4-27 09:23 | 显示全部楼层

不好意思!可能是我没把问题描述清楚,

我是要把整数数组转换成字符串数组如“0X12 0X56”转换成“0X31 0X32 0X35 0X36”
xwj 发表于 2008-4-27 09:45 | 显示全部楼层

你自己先想想:手工换算时应该怎么做!

walnutcy 发表于 2008-4-27 10:41 | 显示全部楼层

先考虑清楚不同表达形式之间有什么异同,

基础很重要
西安周公 发表于 2008-4-27 15:39 | 显示全部楼层

半字节处理,想起来了吧。

 楼主| lyons 发表于 2008-4-28 12:15 | 显示全部楼层

我是想走个捷径,不知有没有现成的函数可以使用?

后学 发表于 2008-4-28 12:54 | 显示全部楼层
gyt 发表于 2008-4-28 13:56 | 显示全部楼层

楼主可能不知道2楼就是

现成的函数
dld2 发表于 2008-4-28 15:10 | 显示全部楼层

Re

"我是要把整数数组转换成字符串数组如“0X12 0X56”转换成“0X31 0X32 0X35 0X36”"

上面是楼主希望实现的。
那么:
char str[8];

sprintf(str,“%x%x”,0x12,0x56);

结果:
str[0] = 0x31;
str[1] = 0x32;
str[2] = 0x35;
str[3] = 0x36;
str[4] = 0;

格式与printf基本一样。只是输出变成字符串。

不过,printf一类的函数,编译后代码很大。资源少的时候慎用。
 楼主| lyons 发表于 2008-4-28 20:50 | 显示全部楼层

谢谢各位!我自己写了一段代码.用printf编译后代码的确很

carr 发表于 2008-4-28 21:18 | 显示全部楼层

没有捷径!

连这种算法都要走捷径,对你半点好处都没有!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

65

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部
0