Arduino atoi()
函數未按預期工作。原件是656649,但是當轉換爲字符串時,它打印1289.可能發生什麼?謝謝!Atoi()函數不起作用Arduino
void setup() {
Serial.begin(9600);
}
void loop() {
String BT1 = "656649"
Serial.print(" String BT1: ");
Serial.print(BT1); // OUTPUT: 656649
char charBuf[50];
BT1.toCharArray(charBuf, 50) ;
Serial.print("Char buff: "); // OUTPUT: 656649
Serial.print(charBuf);
intBT1 = atoi(charBuf);
Serial.print(" intBT1: "); //OUTPUT: 1289
Serial.print(intBT1);
}
也許arduino是16位系統。 ''atol''應該可以工作,你應該使用''long''或者''(u)int32_t''作爲32位數字; – cmdLP
打印出'sizeof(int)',你會得到什麼? – NathanOliver
656649等於0x000A0509; 0x0509等於1289 – franji1