查看: 1406|回复: 2

[其他] 每天解决一个问题24天 :将数字转换成对应十六进制字符串

[复制链接]
  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16790
    最后登录
    1970-1-1
    发表于 2015-9-17 21:33:10 | 显示全部楼层 |阅读模式
    今天给大家分享一个我遇到的数制转换转换的问题。


    一、问题描述:
    遇到一个问题,比如有个数据321,想把它转换成十六进制的字符串即“141”。
    原来遇到这个问题都是用itoa函数来实现的,这个函数可以非常方便的将任意数字转换成字符串,可以是2、8、10、16进制。
    但是在使用KDS3.0时,发现在stdlib.h库中的没有这个函数。
    原因是itoa是广泛应用的非标准C语言扩展函数。由于它不是标准C语言函数,所以不能在所有的编译器中使用。
    但又不想自己写程序来实现,有什么方法呢?


    二、解决办法:
    后来发现,使用sprintf函数十分方便,而且比itoa的功能更强大。
    1、sprintf函数功能 :把格式化的数据写入某个字符串缓冲区。
    原型 :int sprintf( char *buffer, const char *format, [ argument] … );
    参数:
    (1)buffer:char型指针,指向将要写入的字符串的缓冲区。
    (2)format:格式化字符串。
    (3)[argument]...:可选参数,可以是任何类型的数据。
    返回值 :字符串长度(strlen)

    2、来看一个使用的方法:
    3891.jpg
    输出结果
    3892.jpg
    可以看到,满足要求。


    三、感想与收获:
    1、在很多情况下,库函数给大家提供了很多有用的常用函数。

    我知道答案 目前已有2人回答
    回复

    使用道具 举报

    该用户从未签到

    11

    主题

    101

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    303
    最后登录
    2021-11-15
    发表于 2015-9-18 08:22:14 | 显示全部楼层
    自已动手丰衣足食,可以自己写一个int2hex函数
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-8-12 09:22
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    5

    主题

    119

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    250
    最后登录
    2020-8-12
    发表于 2015-9-18 12:54:46 | 显示全部楼层
    今天天气不错!签到!
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-18 04:41 , Processed in 0.080657 second(s), 23 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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