搜索
bottom↓
回复: 5

求助!!数值怎么才能转换成字符串

[复制链接]

出0入0汤圆

发表于 2012-8-18 16:12:35 | 显示全部楼层 |阅读模式
         大家好,我在做通信是unsigned char data[]={0xfa,0x22,0xfe}的数值,怎么才能转换成一个字符串a=“fa22fe”,请大家给个好办法。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-8-18 19:06:35 | 显示全部楼层
做一字节的拆分发送函数,先发送高四位,再发送低四位,发送前用下面的HEX2_ASCII函数将数据转成字符

//将0~15转'0'~'F'
uint8 HEX2_ASCII(uint8 dat)           
{
    dat &= 0x0F;
    if(dat < 10) return (dat+'0');            //数字0~9
    else            return (dat-10+'A');   //字母A~F
}

出0入0汤圆

发表于 2012-8-18 19:41:40 | 显示全部楼层
#include <stdio.h>
char temp[64];
sprinf(temp,"%c%c%c",date[0],date[1],date[2]);

使用范围见下帖
http://www.amobbs.com/thread-5479873-1-1.html

出0入0汤圆

 楼主| 发表于 2012-8-18 22:45:56 | 显示全部楼层
谢谢,大家了,呵呵,解决了

出0入54汤圆

发表于 2012-8-18 22:49:14 | 显示全部楼层
sprinf函数还是很好用的

出0入0汤圆

 楼主| 发表于 2012-9-5 14:26:30 | 显示全部楼层
自己写了一个,发给大家吧,看看还有什么好招么
u8 HEX2_ASCII(u8 dat) /*0-f转换成字符“0”-“f”函数*/         
{   dat &= 0x0F;
    if(dat < 10) return (dat+'0');      //数字0~9
        else      return (dat-10+'A');   //字母A~F
}  
char s1[20];  //转换字符串结果
void Array_to_String(u8 *p,u8 len)        /*数组转化成字符串函数*/
{       
  u8 i;
        for(i=0;i<len;i++)
        {
  s1[i*2+1]=HEX2_ASCII(p[i]);
                s1[i*2+0]=HEX2_ASCII((p[i]>>4));
        }
}
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-15 15:45

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表