我正在使用以下代码将整数(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/