c - 这是在 c 中将整数转换为 char 数组的好方法吗?

标签 c

我正在使用以下代码将整数(12 位)转换为字符数组:

static char my_num_char[SERIAL_BUFFER_SIZE]="";
static uint16_t my_counterB = 0;

my_num_char[0] = ( my_counterB / 1000) + 48;
my_num_char[1] = ( ( my_counterB - ( my_counterB / 1000 ) * 1000 ) / 100) + 48;
my_num_char[2] = ( ( my_counterB - ( my_counterB / 100 ) * 100 ) / 10) + 48;
my_num_char[3] = ( my_counterB % 10) + 48;
my_num_char[4] = '\n';

这是一个好的方法还是有其他更有效的方法? 我使用这种方式是因为我想并排打包几个整数并通过串行发送它们。我使用 sscanf 从字节流中检索整数。

最佳答案

如果您知道缓冲区中有足够的空间,您可以:

pos=0;
sprintf(my_num_char+pos, "%04d\n", my_counterB);
pos += 5;
sprintf(my_num_char+pos, "%04d\n", my_counterZ);

关于c - 这是在 c 中将整数转换为 char 数组的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44181324/

相关文章:

有人可以帮我指点一下吗

c - 未调用的静态 c 函数会发生什么

c - c文件中的静态变量

c - 使用 Poppler C API 提取 PDF 到文本

c - 具有多个语句的三元运算符

c - 如何在linux中打印时间

无法使用 pthread_exit 终止线程

c - 是否有已关联接收套接字的 netfilter Hook ?

c - WINAPI 代表什么

使用 Cygwin 和 gdbtui 进行 C 编程