欢迎光临散文网 会员登陆 & 注册

C - 将整数转换为字符序列并显示

2023-04-08 15:43 作者:山路旁的辉翎  | 我要投稿

在输出整数的过程中,常常遇到各种各样的问题,例如整数类型修改后出错,未使用的高位被 0 填充,以及边界值(如 -128)显示异常等。使用 printf 固然可行,但对于需要自定义整数格式或必须输出字符序列(如在 TFT-LCD 上显示)的情况,还是自己写一个函数为好。

处理过程比较简单,利用短路运算控制边界条件,进而获得整数位数,最后逐位显示出来。代码如下:

这里显示的是有符号整数,无符号整数同理。其中,DIGIT_NUM 为输入整数的最大位数,BIT_WIDTH 为整数位宽,对应 char、short、int 等类型。

代码预览

当整数范围变化时,只需修改上述两处 #define 即可;如果需要将字符序列输出到其他设备,可修改两处 putchar 函数名。

最初的代码比较长,于是稍作精简与各位分享。那么为什么不用 itoa 或者 sprintf 呢?好问题。itoa 不是标准库函数,要减少使用;sprintf 嘛——忘了

C - 将整数转换为字符序列并显示的评论 (共 条)

分享到微博请遵守国家法律