c - 这是 Arduino modulo 的错误还是我的错误?

标签 c arduino modulo arduino-due

我使用模运算符为 Arduino Due(运行 1.6.1)创建了以下简单草图:

int count = 0;

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

void loop() {
  Serial.print("Count: ");
  Serial.println(count);
  Serial.print("Count / 4 = ");
  Serial.println(count / 4);
  Serial.print("Remainder = ");
  Serial.println(count & 4);
  Serial.println();
  count++;
  if (count == 50) {
    delay(86400000);
  } else {
    delay(1000);
  }
}

输出如下所示:

Count: 0
Count / 4 = 0
Remainder = 0

Count: 1
Count / 4 = 0
Remainder = 0

Count: 2
Count / 4 = 0
Remainder = 0

Count: 3
Count / 4 = 0
Remainder = 0

Count: 4
Count / 4 = 1
Remainder = 4

Count: 5
Count / 4 = 1
Remainder = 4

Count: 6
Count / 4 = 1
Remainder = 4

Count: 7
Count / 4 = 1
Remainder = 4

Count: 8
Count / 4 = 2
Remainder = 0

Count: 9
Count / 4 = 2
Remainder = 0

Count: 10
Count / 4 = 2
Remainder = 0

Count: 11
Count / 4 = 2
Remainder = 0

Count: 12
Count / 4 = 3
Remainder = 4

Count: 13
Count / 4 = 3
Remainder = 4

Count: 14
Count / 4 = 3
Remainder = 4

Count: 15
Count / 4 = 3
Remainder = 4

Count: 16
Count / 4 = 4
Remainder = 0

我的期望是余数会一次又一次地从 0 计数到 3。相反,它会在 0 和 4 之间交替四次和 4 次。

我完全愿意接受自己做错事的想法,但我不知道那是什么。

最佳答案

我没有看到模运算符 (%)。我看到的是 &

关于c - 这是 Arduino modulo 的错误还是我的错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29465097/

相关文章:

c - USBHOSTHidKdb 固件代码中使用的函数 'number()' 的逻辑

从 C 脚本调用 Perl 脚本,对文本文件进行排序

audio - 没有音频输出 Teensy 3.2 使用板载 DAC 或 USB 直通

c++ - 模运算的属性

c - 如何在 C 语言中预取指针,针对 AMD Opteron 6168?

无法运行第二个任务

c++ - 在执行更复杂的程序时,Arduino UNO 意外循环串行

c++ - 如何编译一个简单的Arduino程序?

java - 为什么我从这个语句中得到-1?

C 模数和余数