将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 数组

arduino int强制转换char

Arduino中数据类型转换 int转换为char 亲测好使,itoa()函数

arduino数据类型转换

arduino 中如何将字符串型转换为float型?

Arduino的条形码阅读器识别char