十进制转字符串 函数咋写?

[复制链接]
2093|8
 楼主| xlsbz 发表于 2014-10-17 14:51 | 显示全部楼层 |阅读模式
又在网上找 没找到合适的????


我觉得这样的形式比较好

uint16_t    zhuanhuan(char *,  char * , uint16_t length)
{

     return xxx;
}

大家手里有现成的函数 贡献一下 多谢。
执行效率高点最好   低点也无所谓。

嗨  脑袋有点生锈

多谢各位

yklstudent 发表于 2014-10-17 15:23 | 显示全部楼层
你是字符串转十进制还是十进制转函数哦

评分

参与人数 1威望 +5 收起 理由
xlsbz + 5 啥?

查看全部评分

ayb_ice 发表于 2014-10-17 17:02 | 显示全部楼层
转成ASCII码,最后加个0。。。

评分

参与人数 1威望 +5 收起 理由
xlsbz + 5

查看全部评分

ningling_21 发表于 2014-10-17 18:39 | 显示全部楼层
最好用一个数组,返回数组指针和长度

a[0]= x/1000+0x30;
a[1]=x%1000/100+0x30;
....

评分

参与人数 1威望 +5 收起 理由
xlsbz + 5

查看全部评分

lxyppc 发表于 2014-10-17 19:41 来自手机 | 显示全部楼层
c标准库,itoa

评分

参与人数 1威望 +5 收起 理由
xlsbz + 5

查看全部评分

 楼主| xlsbz 发表于 2014-10-17 21:42 | 显示全部楼层
嗯  打算用vsprintf了。自己写太费劲了。
以前写代码从不用库因为misra这么讲的。 现在妥协了,
yklstudent 发表于 2014-10-17 22:10 | 显示全部楼层
// 整型数据转换成字符串格式
static void u16tostr(uint16_t u16_dat, uint8_t *str, uint8_t *u8_len)
{
    uint8_t i;
    uint8_t buf[5];
    uint8_t start = 0;
    buf[0] = u16_dat / 10000;
    buf[1] = u16_dat % 10000 / 1000;
    buf[2] = u16_dat % 1000 / 100;
    buf[3] = u16_dat % 100 / 10;
    buf[4] = u16_dat % 10;
    for(i=0; i<5; i++)
    {
        if(buf != 0)
            break;         
    }
    start = i;
    for(i=start; i<5; i++)
    {
        *str++ = buf + 0x30;
    }
    *u8_len = 5-start;
}

楼主想要这样的??????
bhsdlmj 发表于 2014-10-17 23:11 | 显示全部楼层
yklstudent 发表于 2014-10-17 22:10
// 整型数据转换成字符串格式
static void u16tostr(uint16_t u16_dat, uint8_t *str, uint8_t *u8_len)
{

嗯 类似吧  不过你这个不够通用啊

要弄成两个 *,你的才一个星星
yklstudent 发表于 2014-10-17 23:34 | 显示全部楼层
bhsdlmj 发表于 2014-10-17 23:11
嗯 类似吧  不过你这个不够通用啊

要弄成两个 *,你的才一个星星

十进制数据用指针表示??????
你倒是给我表示下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

190

主题

1614

帖子

4

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