C++ 将char*转换为int arduino
我无法从char获取int值。。这里 Serial.println(((char*)“3772837903”); Serial.println(atoi((char*)“3772837903”) 3772837903 2147483647C++ 将char*转换为int arduino,c++,arduino,type-conversion,C++,Arduino,Type Conversion,我无法从char获取int值。。这里 Serial.println(((char*)“3772837903”); Serial.println(atoi((char*)“3772837903”) 3772837903 2147483647 有人能帮忙吗?thx是基于AVR的MCU上的一个16位宽有符号变量。你的显然是一个32位有符号变量,所以我假设它是一个基于ARM的板 无论如何,4294967296-1是无符号整数(uint32\u t)的最大值。对于int32\u t来说,这是它的一半,即
有人能帮忙吗?thx是基于AVR的MCU上的一个16位宽有符号变量。你的显然是一个32位有符号变量,所以我假设它是一个基于ARM的板 无论如何,
4294967296-1
是无符号整数(uint32\u t
)的最大值。对于int32\u t
来说,这是它的一半,即2147483647
关于:
返回值
成功时,函数将转换后的整数作为int值返回
如果转换后的值超出int表示的值范围,则会导致未定义的行为。如有可能,请参阅strtol,以了解更强大的跨平台替代方案
我的猜测是,在实践中,这个“未定义的行为”将返回
INT\u MAX
您不应该转换为未签名的INT吗?(不确定)这不适合int
。您还可能遇到inti=3772837903的问题代码>。您需要一个更宽的类型,或者一个无符号int。