找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5788|回复: 7
打印 上一主题 下一主题
收起左侧

keil C语言可以直接使用itoa函数把整数型转换为字符串类型吗?

[复制链接]
跳转到指定楼层
楼主
ID:796670 发表于 2020-11-30 08:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问如何把一个整数型转换为字符串类型?
比如把十六进制的a=0x1A转换为字符串类型的b="26",该如何转换?可以直接用itoa函数吗?还是说要自己写一个函数?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:277550 发表于 2020-11-30 09:28 | 只看该作者
预先知道值范围,

unsigned char ss[2];
unsigned char a=0x1A;

ss[0]=(a/10)+'0';
ss[1]=(a%10)+'0';
回复

使用道具 举报

板凳
ID:568565 发表于 2020-11-30 09:39 | 只看该作者
如果只是单个十进制转字符串,使用sprintf函数就可以了。
如果是十进制数组:
u16 DectoStr (u8 *pSrc, u16 SrcLen, u8 *pObj)
{
    u16 i=0;

    for(i=0;    i<SrcLen;   i++)
    {
        sprintf((char *)(pObj + i * 2), "%02d", *(pSrc + i));
    }
    *(pObj + i * 2) = '\0';
    return  (i * 2);
}
回复

使用道具 举报

地板
ID:592807 发表于 2020-11-30 09:44 | 只看该作者
#include <stdio.h>
u8 a= 0x1a;
u8 buff[100];
sprintf(buff,“b = %s”,a);
/*
int sprintf( char *buffer, const char *format, [ argument] … );

这个函数包含三个部分的参数:

buffer:char型指针,指向将要写入的字符串的缓冲区。format:格式化字符串。即可选参数的想要输入的数据类型。[argument]...:可选参数,可以是任何类型的数据。
*/
回复

使用道具 举报

5#
ID:851519 发表于 2020-11-30 09:47 | 只看该作者
sprintf(b,"%d",a);
回复

使用道具 举报

6#
ID:822755 发表于 2020-11-30 10:33 | 只看该作者
keil C51没有itoa库函数,要自己实现或用sprintf实现
回复

使用道具 举报

7#
ID:796670 发表于 2020-11-30 14:12 | 只看该作者
devcang 发表于 2020-11-30 09:28
预先知道值范围,

unsigned char ss[2];

谢谢,非常感谢
回复

使用道具 举报

8#
ID:796670 发表于 2020-11-30 14:13 | 只看该作者
黄youhui 发表于 2020-11-30 09:44
#include
u8 a= 0x1a;
u8 buff[100];

谢谢,感谢指点
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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