我想转换通过测量压力生成的数组。 所以我得到了一个整数数组,这样,我将使用的10个样本,但现在它结束时它可能会成为20个值:uint16_t ADCsample[10]= { 245, 332, 124, 98, 5, 156, 68, 199, 2, 105}
将整数数组转换为char数组,每个整数每3位数
正如你所看到的数值范围为0-350,没有负值。 ,我必须得到它像这样的输出:outputStr = {2,4,5,3,3,2,1,2,4,0,9,8,0,0,5,1,5,6,0,6,8,1,9,9,0,0,2,1,0,5}
因此,所有的整数值分隔,并放入新的数组,以便ADCsample[0] = {245}
变得outputStr[0-2] = {2,4,5}
。但是具有一位或两位数字的样本必须获得值为0的值,这是为了使输出具有恒定的长度。
例如:成为outputStr[12-14]={0,0,5}
我需要通过发送这个数据到服务器只用短信,其中有160个字符或什么的字符限制。所以我将不得不一次发送完整的outputStr。此外,所有的计算都是在微控制器MSP430G2553上完成的,因此它必须高效且不会占用太多内存。
任何提示或代码示例,以帮助我开始,我是一个真正的新手,所以我不知道内置库的许多功能?我可以使用sprintf()或其他函数吗?这会使用多少内存?
您需要实际字符'{'2','4','5','3','3','2',...},而不是特殊的不可打印字符'{2,4 ,5,3,3,2,...}',对吧? – dasblinkenlight
'带'%03d'的sprintf' ..然后从每个中减去''0'。 –
@EugeneSh。对于只有500字节RAM的微控制器,'sprintf'可能有点太贵。 – dasblinkenlight