如何将数字转换为十进制字符串?

 na点儿破事凶 发布于 2023-02-12 20:38

大家好(这里是新手),

我在嵌入式系统上工作,我需要将十六进制数转换为ASCII字符串.

请在回答之前阅读以了解我的要求.

例如hexNumber = 0xFF ASCII = 0x32 0x35 0x35

ASCII字节表示十六进制数的十进制值.即0xFF为255,0xFE为254等...

实质上,每个字节应为十六进制数的十进制表示生成3个字节.

使用键盘不输入值,它是从智能卡获得的值.

1 个回答
  • 您可以使用C风格sprintf():

    char buf[4];
    sprintf(buf, "%03d", 0xFF & (unsigned)byte_to_convert);
    

    您也可以使用snprintf(),当输出格式未修复时通常更安全,但对此应用程序而言并不重要.

    如果您的嵌入式环境无法承担printf从库中链接族函数的成本(它们可能相当大),那么使用除法和模数进行转换,如下所示:

    char buf[4];
    buf[3] = 0;   /* NUL trminator */
    buf[2] = (unsigned)byte_to_convert       % 10 + '0';
    buf[1] = (unsigned)byte_to_convert / 10  % 10 + '0';
    buf[0] = (unsigned)byte_to_convert / 100      + '0';
    

    2023-02-12 20:45 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有