C++ 一个Arduino巨型模型的奇异计算
看看这个非常基本的Arduino计划:C++ 一个Arduino巨型模型的奇异计算,c++,arduino,C++,Arduino,看看这个非常基本的Arduino计划: long pos = 90 * 1023/360; Serial.println(pos); 它应该显示255,但它显示73。我不明白为什么 这个程序是在Arduino Mega上运行的。因为等号右边的所有东西都是整数大小的,所以数学是在整数大小的框中完成的。第一步是将90*1023相乘,结果会溢出int。您必须通过强制编译器将其中一个数字设为long来告诉编译器在右侧使用long: long pos = 90L * 1023/360; 您可以简单地将
long pos = 90 * 1023/360;
Serial.println(pos);
它应该显示255,但它显示73。我不明白为什么
这个程序是在Arduino Mega上运行的。因为等号右边的所有东西都是整数大小的,所以数学是在整数大小的框中完成的。第一步是将90*1023相乘,结果会溢出int。您必须通过强制编译器将其中一个数字设为long来告诉编译器在右侧使用long:
long pos = 90L * 1023/360;
您可以简单地将右侧的一个数字转换为一个长数字
long pos = 90 * 1023L/360;
你的答案与上面的答案完全相同,这是不久前回答的。