dbo 发表于 2012-8-21 17:47:38

为什么arduino UNO算出来的结果是这样

void setup()
{
Serial.begin(9600);
}

void loop()
{
   int abc =abs(145);
   float a = 0.003125;
int steps = abc /(0.003125);
for(int i=0; i < steps; i++){
      Serial.print(a);
Serial.print("###");
Serial.print(abc);
Serial.print("###");
Serial.print(steps);
Serial.print("###");
Serial.print(i);
Serial.print("###");
float ab = i*0.003125;
Serial.println(ab);}
}
请问下 为什么 steps算出来不是46400 而是32767

PureGold 发表于 2012-8-21 20:03:34

本帖最后由 PureGold 于 2012-8-21 20:07 编辑

可能是因为 (我奇怪为什么不溢出)
int八位机上最大32767(我怎么觉得不对劲呢)
试试 long或者无符号int
页: [1]
查看完整版本: 为什么arduino UNO算出来的结果是这样