簡體   English   中英

將char *轉換為int arduino

[英]Convert char* to 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 )的uint32_t 對於int32_t來說,只有一半,即2147483647

關於atoi

返回值

成功后,函數將轉換后的整數返回為int值。

如果轉換后的值超出int可表示值的范圍,則它將導致未定義的行為。 如果可能,請參閱strtol以獲取更健壯的跨平台替代方案。

我的猜測是,實際上,這種“未定義的行為”將返回INT_MAX

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM