极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11175|回复: 1

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

[复制链接]
发表于 2012-8-21 17:47:38 | 显示全部楼层 |阅读模式
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
回复

使用道具 举报

发表于 2012-8-21 20:03:34 | 显示全部楼层
本帖最后由 PureGold 于 2012-8-21 20:07 编辑

可能是因为 (我奇怪为什么不溢出)
int八位机上最大32767(我怎么觉得不对劲呢)
试试 long或者无符号int
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-29 21:02 , Processed in 0.040891 second(s), 18 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表