将有符号整数(uint16_t)转换为字符串。标准itoa基数10给出负值

时间:2017-01-27 11:48:27

标签: c string unsigned-integer itoa uint16

我需要将uint16_t值转换为字符串。我希望字符串是数字的十进制表示。

示例:uint16_t i = 256字符串:256

我尝试使用itoa(i,string, 10)但是当i值增加时会开始打印负值 我通过串口发送字符串。(UART)
它有一些替代方案吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试将sprintf()用于常见"来字符串"转换。例如:

#include <stdio.h>
#include <math.h>

int main() {
   uint16_t i = 256;
   char str[80];

   int str_len = sprintf(str, "%d", i);

   return(0);
}

有关详细信息,请查看this article

答案 1 :(得分:0)

/nbproject使用sprintf格式%u

unsigned int
相关问题