将char *转换为int arduino
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将char *转换为int arduino相关的知识,希望对你有一定的参考价值。
我有问题从char获取int值..这里
Serial.println(((* * char *)“3772837903”); Serial.println(atoi((* char *)“3772837903”);
3772837903 2147483647
有人可以帮忙吗?谢谢
答案
int
是基于AVR的MCU上的16位宽签名变量。你的显然是一个32位的签名变量,所以我认为它是一个基于ARM的板。
无论如何,4294967296-1
是无符号整数(uint32_t
)的最大值。对于int32_t
来说,它只有一半,即2147483647
。
关于atoi
:
回报价值
成功时,该函数将转换后的整数作为int值返回。
如果转换后的值超出int的可表示值范围,则会导致未定义的行为。当有可能时,请参阅strtol以获得更强大的跨平台替代方案。
我的猜测是,在实践中,这种“未定义的行为”将返回INT_MAX
。
以上是关于将char *转换为int arduino的主要内容,如果未能解决你的问题,请参考以下文章
在 Arduino 上将 int 或 String 转换为 char 数组