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