这是Arduino模数中的错误还是我?

时间:2015-04-06 03:50:40

标签: 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次。

我完全接受了我做错事的想法,但我无法弄清楚它是什么。

1 个答案:

答案 0 :(得分:3)

我没有看到模运算符(%)。我改为&